| 本帖最后由 逆风TO 于 2020-1-6 10:19 编辑 
 一、Spring概述
 1.1 框架概述
 
 框架是一个封装了很多功能和模块的程序半成品。可以理解是一个由很多工具类组合成的一个工具包。
 1.2 Spring是什么
 Spring是分层的 Java SE/EE应用 full-stack 轻量级开源框架。是Java开发的灵魂框架。
 Spring有两大内核:
 IOC:(Inverse Of Control:控制反转)
 AOP:(Aspect Oriented Programming:面向切面编程)
 1.3 Spring功能
 IOC:控制反转。就是我们不在创建对象,把对象的创建权,交给spring,由Spring负责给我们创建对象。
 DI: 依赖注入。就是给对象的成员变量赋值。
 AOP:面向切面编程,底层就是动态代理。
 事务: Spring提供了声明式事务,也就是说,我们可以通过配置的方式来添加事务。
 二、Spring快速入门
 2.1 Spring程序开发步骤
 
 1 导入 Spring 开发的基本包坐标
 2 编写 Dao 接口和实现类
 3 创建 Spring 核心配置文件
 4 在 Spring 配置文件中配置 UserDaoImpl
 5 使用 Spring 的 API 获得 Bean 实例
 
 [Java] 纯文本查看 复制代码 <!-- pom.xml中根据自己的版本配置 -->
<properties>
        <spring.version>5.0.5.RELEASE</spring.version>
</properties>
<!--导入spring的context坐标,context依赖core、beans、expression-->
<dependencies> 
    <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>5.0.5.RELEASE</version>
        </dependency>
</dependencies>
2.3 编写Dao接口和实现类
 
 、[Java] 纯文本查看 复制代码 public interface UserDao {  
    public void find();
}
public class UserDaoImpl implements UserDao {  
    @Override  
    public void find() {
        System.out.println("UserDao find method running....");
        }
}
2.4 创建Spring核心配置文件 2.5 在Spring配置文件中配置UserDaoImpl在类路径下(resources)创建applicationContext.xml配置文件[Java] 纯文本查看 复制代码 <?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="
                    [url=http://www.springframework.org/schema/beans]http://www.springframework.org/schema/beans[/url]                                                                           [url=http://www.springframework.org/schema/beans/spring-beans.xsd]http://www.springframework.org/schema/beans/spring-beans.xsd[/url]">
 [Java] 纯文本查看 复制代码 <beans xmlns="http://www.springframework.org/schema/beans"                                                                         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xsi:schemaLocation="
                    [url=http://www.springframework.org/schema/beans]http://www.springframework.org/schema/beans[/url]                                                                           [url=http://www.springframework.org/schema/beans/spring-beans.xsd]http://www.springframework.org/schema/beans/spring-beans.xsd[/url]">
    
   <!-- 配置UserDaoImpl -->
   <bean id="userDao" class="www.baidu.dao.impl.UserDaoImpl"></bean>
    
</beans>
2.6 使用Spring的API获得Bean实例
 
 [AppleScript] 纯文本查看 复制代码 @Test 
public void test1(){
    //加载spring配置文件。获取spring核心容器
        ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
    //获取spring容器中的userDao对象
    UserDao userDao = (UserDao) ac.getBean("userDao");
    //调用方法
    userDao.find();
}
三、Spring配置文件
 3.1 Bean标签基本配置 [AppleScript] 纯文本查看 复制代码 <bean id="userDao" class="www.baidu.dao.impl.UserDaoImpl"></bean>
 id:Bean实例在Spring容器中的唯一标识class:Bean的全限定名称
 
 3.2 Bean标签范围配置 [Java] 纯文本查看 复制代码 <bean id="userDao" class="www.baidu.dao.impl.UserDaoImpl" scope="singleton" ></bean>
 scope:指对象的作用范围,取值如下: 
 3.3 Bean生命周期配置 
 init-method:指定类中的初始化方法名称,当对象被创建时,调用该方法。 destroy-method:指定类中销毁方法名称,当对象被销毁时,调用该方法。 3.4 Bean实例化三种方式 1 使用无参构造方法实例化 默认调用无参构造方法创建对象,如果bean中没有默认无参构造函数,将会创建失败 [Java] 纯文本查看 复制代码 <bean id="userDao" class="www.baidu.dao.impl.UserDaoImpl"/>2 工厂静态方法实例化[AppleScript] 纯文本查看 复制代码 //工厂类
public class StaticFactoryBean {
    //静态方法,通过该方法获取对象
    public static UserDao createUserDao(){    
            return new UserDaoImpl();
    }
}
 [Java] 纯文本查看 复制代码 <bean id="userDao" class="www.baidu.factory.StaticFactoryBean" factory-method="createUserDao" />
 
 [Java] 纯文本查看 复制代码 //工厂类
public class DynamicFactoryBean {  
    //非静态方法,需要先创建工厂类的对象,再通过对象调用该方法,获取对象
        public UserDao createUserDao(){        
                return new UserDaoImpl(); 
        }
}
 
 [Java] 纯文本查看 复制代码 <!-- 创建工厂类的对象 -->
<bean id="factoryBean" class="www.baidu.factory.DynamicFactoryBean"/>
<!-- 通过工厂类的对象,调用createUserDao方法,获取UserDao对象 -->
<bean id="userDao" factory-bean="factoryBean" factory-method="createUserDao"/>
 
 |