Loading

Spring 学习笔记

Spring

一. Spring Framework

Spring 是一个轻量级框架,目的是为了让对象之间的耦合性降低(解耦),方便后期代码的维护;

Spring 本质上就是一个 Bean 工厂,应用程序中所有的对象生命周期都是由 Spring 来管理的;

二. Spring 中对象的注入方式

  • set 注入(实体类中的属性必须有 set 方法)

    <bean name="user" class="com.ztkj.entity.User">
    	<property name="userId" value="1"> </property>
    	<property name="userName" value="小溪"> </property>
    	<property name="userPass" value="123"> </property>
    </bean>
    
  • 构造方法注入(实体类中必须有带参数的构造方法)

    <bean name="user" class="com.ztkj.entity.User">
    	<constructor-arg index="0" value="1"></constructor-arg>
    	<constructor-arg index="1" value="小悕"></constructor-arg>
    	<constructor-arg index="2" value="666"></constructor-arg>
    </bean>
    

三. Spring 对象模式

Spring 的配置文件中,一个 bean 标签代表一个对象,创建的时候默认是采取单例模式,若想采取原型模式,则要给 bean 标签加上scope="prototype"

  • 单例模式

    public class Single {
    	// 自身成为自身的静态属性
    	private static Single s = null;
    
    	// 构造方法私有化
    	private Single() {}
    
    	// 提供一个外部可访问的静态方法
    	public static synchronized Single getSingle() {
    		if (s == null) {
    			s = new Single();
    		}
    		return s;
    	}
    }
    
  • 原型模式

    与单例模式相反,每次获取的对象都是新的对象

  • 工厂模式

    根据配置文件,动态的获取一组类中某个类的实例,一般来讲这一组类都实现了同一个接口或继承了同一个类

  • 代理模式

    • Hibernate 懒加载返回的是一个代理对象
    • Struts 的 action 代理

四. Spring 核心

  • IOC(控制反转)/ DI(依赖注入)
  • AOP(面向切面编程)
IOC / DI

在没有出现 Spring 框架之前,一个对象调用另一个对象的方法时,需要先在当前对象中创建出另一个对象,这些对象之间才有了关系(耦合性较高),而Spring 框架,应用程序中所有的对象都是由 Spring 容器来管理它们的生命周期,此时一个对象需要调用另一个对象的方法时,Spring 容器会把相对应的对象给你,则不需要在当前类创建新的对象

把 SessionFactory 对象注入到 Dao 层,把 Dao 层对象注入到 Service 层,把 Service 层对象注入到 Action 层

AOP

在程序运行到某一个点时(切入点),使程序暂时停下来,去执行人为切入的一段代码,再继续执行原来的业务逻辑代码,切入的代码并不会影响到原来业务逻辑代码的执行,一般用于事务管理或日志管理

静态工厂注入,实例工厂注入

五. Spring 的通知类型

  1. 前置通知:程序执行到切入点(Service 层的方法)之前执行切入的代码
  2. 后置通知:程序执行到切入点(Service层的方法)之后执行切入的代码
  3. 异常通知:切入点抛出异常
  4. 环绕通知
  5. 引入通知

六. SSH 框架整合

  1. 创建实体类,配置映射文件,通过 Hibernate SchemaExport 对象创表
  2. 编写 Dao 层接口和实现类(封装 BaseDao)
  3. 编写 Service 层接口和实现类
  4. web.xml中配置 Struts2 的核心过滤器,创建 Action,并在struts.xml中配置 Action 信息
  5. web.xml中配置 Spring 的监听器,并指定读取的文件路径
  6. 在 Spring 的配置文件中配置:dataSource,sessionFactory,transactionManager(事务管理器),tx:advice(事务传播特性),aop(面向切面编程)

七. Spring 容器什么时候被创建?

​ Tomcat 服务器启动的时候,会读取web.xml配置文件,加载 Spring 的监听器,Spring 监听器此时就会去读取 Spring 的配置文件(applicationContext.xml) 后实例化所有的对象

posted @ 2022-03-23 22:03  Schieber  阅读(38)  评论(0编辑  收藏  举报