Spring 知识点整理(整理自网络)
2014-06-30 14:20
567 查看
1 Spring
1.1 原理
1.1.1 IOC
概念:控制权由对象本身转向容器;由容器根据配置文件去创建实例并创建各个实例之间的依赖关系核心:bean工厂;在Spring中,bean工厂创建的各个实例称作bean
1.1.2 AOP
AOP的主要原理:动态代理提示: 1. 静态代理: 针对每个具体类分别编写代理类; 针对一个接口编写一个代理类; 2. 动态代理: 针对一个方面编写一个InvocationHandler,然后借用JDK反射包中的Proxy类为各种接口动态生成相应的代理类 |
1.2 spring的7个模块
1. spring核心容器(Core)2. spring上下文
3. springAOP
4. SpringDAO
5. SpringORM
6. springWeb支持struts集成
7. springMVC自带的mvc框架
1.3 spring的依赖注入(反射)
1. 接口注入2. 构造注入
3. Setter注入
1.4 Spring实例化bean的三种方式
1. 默认使用类加载器2. 使用静态工厂方法实例化bean对象
<bean id="名称" class="工厂类"factory-method="工厂类中创建bean实例的方法"/>
3. 使用实例工厂方法实例化bena对象
<bean id="实例工厂名称"class="工厂类的路径"/> <bean id="名称" factory-bean="实例工厂名称"method="实例工厂里边的创建bena对象的方法"/>
1.5 Spring管理的bean的作用域
1. Spring生成的bean默认为单实例。singleton。2. 如果需要每次调用Spring的getBean方法就创建一个 bean的实例,可指定bean的属性scope="prototype"
3. request、session、globalsession 这3个一般基于web的spring ApplicationContext情形下有效。
1.6 Spring的手工装配和自动装配
1.6.1 手工装配
手动的将bean中所关联的其他bean装配进去<bean id="storeService"class="service.StoreServiceImpl"> <propertyname="orderDao" ref="orderDao"/> </bean>
1.6.2 自动装配
使用autowire关键字声明bean的自动装配方式。其可选值为byName、byType、constructor<bean class="dao.OrderDaoImpl"autowire="byName"></bean>
1.7 Spring的Bean生命周期
1. 当作用域范围为singleton时,在初始化Spring容易的时候实例化bean实例。如果lazy-init的值为true,则为延迟bean的实例化,即在Spring容器启动时不实例化bean的对象
2. 当作用域范围为prototype时,在调用Spring的getBean的方法时实例化bean对象
1.8 Spring声明式事务
<bean name="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource"></property> </bean> <tx:advice id="defaultTxAdvice" transaction-manager="transactionManager"> <tx:attributes> <tx:method name="remove*" propagation="REQUIRED" read-only="false" rollback-for="java.lang.Exception" no-rollback-for="java.lang.RuntimeException" /> <tx:method name="add*" propagation="REQUIRED" read-only="false" rollback-for="java.lang.RuntimeException" /> <tx:method name="modify*" propagation="REQUIRED" read-only="false" rollback-for="java.lang.Exception" /> <tx:method name="find*" propagation="SUPPORTS" /> <tx:method name="get*" propagation="SUPPORTS" /> <tx:method name="select*" propagation="SUPPORTS" /> </tx:attributes> </tx:advice> <aop:config> <aop:pointcut id="pc" expression="execution(public * com.js.free.oa.service.*.*(..))" /><!--把事务控制在Service层--> <aop:advisor pointcut-ref="pc" advice-ref="defaultTxAdvice" /> </aop:config>
相关文章推荐
- 思科网络路由知识点整理三
- 思科网络路由知识点整理五
- 计算机网络知识点整理
- 操作系统知识点整理【均来自于网络】
- 思科网络路由知识点整理一
- 一些我面试过程中遇到j2ee知识点的整理(2),答案来源于网络
- 软考嵌入式系统工程师知识点整理(网络与通信)
- 【网络基础】计算机网络常考知识点整理
- spring boot 知识点整理
- 思科网络路由知识点整理六
- 网络 知识点整理
- 思科网络路由知识点整理十
- 计算机网络面试知识点整理
- 计算机网络知识点整理(2)
- 思科网络路由知识点整理四
- 思科网络路由知识点整理九
- spring AOP知识点整理
- 计算机网络面试常考知识点整理
- 一些我面试过程中遇到j2ee知识点的整理,答案来源于网络