zoukankan      html  css  js  c++  java
  • JavaWeb学习:Spring入门

    一、概述

      Spring是一个分层的SE/EE一站式轻量级开源框架

      一站式框架:有EE开发的每一层解决方案。

        Web层:SpringMVC

        Service层:Spring的Bean管理,Spring声明式事务

        DAO层:Spring的JDBC模板,Spring的ORM模板

    二、Spring的优势、

      1、方便解耦,简化开发

        通过Spring提供的IOC容器,可以将对象之间依赖关系交由Spring控制,以降低程序过度耦合。

      2、AOP编程的支持

      3、声明式事务的支持

      4、方便集成各种优秀框架

    三、IOC:Inversion of Control(控制反转)

      耦合比如:

    Class Service{ 
        public void method(){ 
            DAO dao = new DAOImpl();
            dao.method();
        }
    }    

      现在DAOImpl要换成DAOExtendImpl的话,就需要修改代码

    Class Service{ 
        public void method(){ 
            DAO dao = new DAOExtendImpl();
            dao.method();
        }
    } 

      这样就会大大增加开发风险和成本。那能不能不修改代码情况下就能实现程序的扩展?

      传统解决方案:使用工厂模式

     实现Service与Dao之间的解耦,但是DAO与工厂有耦合,解决他们之间的耦合就使用配置文件,配置对象类型,通过反射创建对象。

      Spring的解耦底层原理也是这样的,Spring已经提供了工厂,所以我们只需要配置对象类型就可以了。具体使用方式:

      ①、下载Spring的开发包

        https://repo.spring.io/webapp/#/artifacts/browse/tree/General/libs-release-local

        

        在springframework下找到spring,并展开,选择要下载的版本,展开它

        

       ②、解压

        

        docs:Spring的开发规范和API

        libs:Spring的开发jar和源码

        schema:Spring的配置文件的约束

      ③、创建web项目,搭建环境

        

            

       ④、创建接口和实现类

    public interface UserDAO {
        public void save();
    }
    public class UserDAOImpl implements UserDAO{
    
        @Override
        public void save() {
        System.out.println("DemoDAOImpl...");
        }
    }

      ⑤、将实现类交给Spring管理

        Ⅰ、在src下新建applicationContext.xml

          在spring的解压路径下找到spring-framework-4.2.4.RELEASEdocsspring-framework-referencehtmlxsd-configuration.html,并双击打开,找到 the beans schema,复制如下内容

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="
            http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
    
        
    
    </beans>

        Ⅱ、将UserDAO实现类配置

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="
            http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
        
        <bean id="userDAO" class="com.xxx.spring.demo.UserDAOImpl"></bean>
    
    </beans>

      ⑥、编写测试类

        @Test
        public void demo1() {
        // 创建Spring的工厂
        ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
        // 根据工厂获取对象
        UserDAO userDAO = (UserDAO) applicationContext.getBean("userDAO");
        userDAO.save();
        }
  • 相关阅读:
    gdb常用命令
    linux退格键处理
    JavaScript的MVC模式(转载)
    linux编程 -- 网络编程(一)
    数组操作-将下标变成从0开始的连续数字
    很多学ThinkPHP的新手会遇到的问题
    PHP 统计一维数组value相同的元素的个数num,并将其转化为下标为数字,值是value和num的二维数组
    MySQL数据库使某个不是主键的字段唯一
    利用JS实现表单的自动提交
    thinkphp 使每个模板页都包含一个header文件和一个footer文件
  • 原文地址:https://www.cnblogs.com/WarBlog/p/14086180.html
Copyright © 2011-2022 走看看