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();
    }
原文地址:https://www.cnblogs.com/WarBlog/p/14086180.html