目录
1Spring IOC:控制反转,关联到bean之间的关系,核心是反射和解析xml(用dom4j)
2Spring DI:依赖注入 解决对象之间的依赖关系
3Spring Aop:面向切面编程
4Spring 事务传播级别和传播行为(重)
5Spring源码分析--bean加载流程和Spring mvc的执行流程
6Mybatis
Spring是一个容器,管理bean(对象)和bean(对象)之间的关系,使用spring管理
xml和注解两种方式
Spring四个作用域:
单例(默认)singleton:Jvm只执行一次,线程不安全,证明:构造函数执行一次
多例(prototype):每次运行都会被创建,线程安全
request:请求作用域
表示该针对每一次HTTP请求都会产生一个新的bean,同时该bean仅在当前HTTP request内有效,配置实例:
request、session、global session使用的时候首先要在初始化web的web.xml中做如下配置:
session:对象和session绑定管理
session作用域表示该针对每一次HTTP请求都会产生一个新的bean,同时该bean仅在当前HTTP session内有效
怎么证明对象是单例:构造函数---反射
使用单例注意事项:线程安全
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop.xsd">
<bean id="userEntity01" class="com.itmayiedu.entity.UserEntity" scope="singleton"></bean>
<bean id="userEntity02" class="com.itmayiedu.entity.UserEntity" scope="singleton">
<constructor-arg name="userName" value="youcan"></constructor-arg>
<constructor-arg name="age" value="30"></constructor-arg>
</bean>
</beans>
<bean id="userEntity01" class="com.itmayiedu.entity.UserEntity" scope="singleton"/>
<bean id="userEntity01" class="com.itmayiedu.entity.UserEntity" scope="prototype"/>
public static void main(String[] args) {
ClassPathXmlApplicationContext applicationContext = new ClassPathXmlApplicationContext(
"spring.xml");
UserEntity userEntity01 = (UserEntity) applicationContext.getBean("userEntity01");
UserEntity userEntity02 = (UserEntity) applicationContext.getBean("userEntity01");
userEntity01.setAge(12);