Spring 简介
<<Spring4.rar>><<spring-4.0.6.rar>>
Spring 作者:Rod Johnson; 官方网站:http://spring.io/ 最新开发包及文档下载地址:http://repo.springsource.org/libs-release-local/org/springframework/spring/ 核心思想:IOC 控制反转;AOP 面向切面; 介绍:百度百科; |
Spring4 版 Hello World 实现
项目实例
装配一个 bean
<<beans.xml>>
项目结构
配置bean配置文件
service加载bean配置文件
Spring 之 IOC 详解
spring ioc 简介
spring ioc 实例
JavaWork
定义一个接口,具体不同的对象实现接口的方法
不同具体对象测试
配置bean配置文件
(将创建不同的对象实例并配置到接口的方法中,交给Spring管理)
使用bean配置调用不同对象的测试方法(Java的反射机制)
更换其他不同对象,不需要更改代码,直接更改bean配置文件
依赖注入
属性注入
配置bean文件
获取配置的实例
构造函数注入
通过类型注入
配置类的有属性构造方法
配置bean文件
通过索引注入
配置bean文件
类型注入和索引注入可以混用
工厂方法注入
静态工厂(方法静态的)
配置静态方法
配置bean文件(因为是静态的,不需要单独定义工厂的bean)
非静态工厂(方法非静态的)
配置非静态方法
配置bean文件
注入参数
导入Junit4 jar包
基本类型值
配置bean.xml
生成Junit测试实例
注入bean(dog可以被多个people引用)
创建dog类
配置bean.xml,设置dog属性值
配置people类,添加dog属性
配置bean.xml,设置people属性值
内部bean(dog只能被一个people引用)
配置bean.xml,设置people属性值,内部配置dog的bean,设置属性值
null值(为空)
配置bean.xml,添加null标签
级联属性
配置bean.xml(使用级联属性,Spring不会自动创建实例,需要自己实例化)
配置people
集合类型属性
List集合
配置people
配置bean.xml
Set集合
配置people
配置bean.xml
Map集合
配置people
配置bean.xml
Properties属性(类似Map,一般用于系统配置)
配置people
配置bean.xml
Spring 自动装配(慎用,屏蔽了实现的细节)
byName(通过name自动装配)
配置people
配置bean.xml
测试类(自动通过name装配dog)
byType(通过类型自动装配)
配置bean.xml
constructor(通过构造方法根据类型自动注入)
配置people
配置bean.xml
方法注入(了解)
配置bean.xml
配置Dog(将获取实例的get方法,修改成抽象的,让Spring自动实现)
配置bean.xml
方法替换(了解)(两个不同的类的方法不同,使得A类实现B类的方法)
配置People2
配置bean.xml(使用配置的reimplement方法实现替换原类的name指定方法)
bean 之间的关系
继承
依赖
定义Authority权限类
配置people
配置bean.xml
引用
bean 作用范围
singletom (默认为单例的)
配置bean.xml
prototype(每次都返回一个新的实例)
配置bean.xml
Spring 之 AOP 详解
AOP 简介(解耦,将不同用途的代码分离开来)
Spring AOP 实例(切面)
前置通知(方法执行之前的通知)
目录结构
配置切面类
配置bean.xml
会通过配置的before通知,先调用doBefire方法,在执行测试类的方法
测试
后置通知(方法执行之后的通知)
配置bean.xml
环绕通知(有返回值,优先级比前置通知低)
配置接口(有返回值)
配置实现接口的类(有返回值)
配置切面类
配置bean.xml
测试
返回通知
配置切面类
配置bean.xml
异常通知
配置切面类
配置bean.xml
Spring 对 DAO 的支持
Spring 对 JDBC 的支持
配置数据源dbcp
<<spring-jdbcTemplate.rar>>
<<spring-dbcp.rar>>
配置bean.xml
<<beans.xml>>
创建jdbc.properties文件,配置jdbc信息
使用JdbcTemplater
目录结构
操作的实体类
dao抽象
dao具体实现
service抽象
service具体实现
配置bean.xml
事务操作
使用JdbcDaoSupper
修改dao具体实现
修改bean.xml
使用NameParameterJdbcTemplate
修改dao具体实现
修改bean.xml
Spring 对 Hibernate 的支持
Spring 对事务的支持
事务简介
编程式事务管理(不太好,嵌入到业务代码中)
配置BankServiceImpl(将连续的操作放在同一个事务中进行操作)
配置bean.xml
声明式事务管理(常用的事务管理)
使用XML配置声明式事务(业务代码不需要更改,只需配置事务通知和事务切面即可)(一般使用xml)
引入头信息
xmlns:tx="http://www.springframework.org/schema/tx" |
配置bean.xml
<!-- 配置事务通知 --> <tx:advice id="txAdvice" transaction-manager="transactionManager"> <tx:attributes> <tx:method name="*"/> </tx:attributes> </tx:advice> |
<!-- 配置事务切面 --> <aop:config> <!-- 配置切点 --> <aop:pointcut id="serviceMethod" expression="execution(* com.java1234.service.*.*(..))" /> <!-- 配置事务通知 --> </aop:config> |
使用注解配置声明式事务(业务代码不需要更改,只需配置注解和事务)(每个service都需要加注解)
配置Service层
配置bean.xml
事务传播行为(事务的嵌套)
经典的写法
<!-- 配置事务通知 --> <tx:advice id="txAdvice" transaction-manager="transactionManager"> <tx:attributes> <tx:method name="insert*" propagation="REQUIRED" /> <tx:method name="update*" propagation="REQUIRED" /> <tx:method name="edit*" propagation="REQUIRED" /> <tx:method name="save*" propagation="REQUIRED" /> <tx:method name="add*" propagation="REQUIRED" /> <tx:method name="new*" propagation="REQUIRED" /> <tx:method name="set*" propagation="REQUIRED" /> <tx:method name="remove*" propagation="REQUIRED" /> <tx:method name="delete*" propagation="REQUIRED" /> <tx:method name="change*" propagation="REQUIRED" /> <tx:method name="get*" propagation="REQUIRED" read-only="true" /> <tx:method name="find*" propagation="REQUIRED" read-only="true" /> <tx:method name="load*" propagation="REQUIRED" read-only="true" /> <tx:method name="*" propagation="REQUIRED" read-only="true" /> </tx:attributes> </tx:advice> |
Spring4 整合 Hibernate4,Struts2
S2SH 整合所需 Jar 包
<<S2SH Jar整合.rar>>
Struts2.3.16 jar包
Spring4.0.6 jar 包
Hibernate4.3.5 jar 包
Spring4 整合 Hibernate4
Spring4 整合 Struts2
S2SH 实例测试
<<S2SH.rar>><<S2SH jar.rar>>
项目结构
配置dao层的具体实现(从Spring4开始支持泛型注入,只需一个Dao一个Dao实现)
配置service层的具体实现
配置entity层
配置action层(Struts2)
配置Struts
配置前端jsp
hibernate和Spring的配置文件是不用更改的使用注解配置具体的实现类