今天发的是Spring+SpringMVC+Mybatis的整合,相对来说都很细节,又哪里不懂的可以在评论问我。
1.导入jar包
2.修改web.xml文件,添加监听事件
3.修改applicationContext.xml文件,需要在工厂中提供实体的路径
4.DAO接口不需要修改添加,applicationContext.xml文件中需要配置DAO的路径
5.Mapper文件需要在applicationContext.xml中注册路径,Mapper文件中的数据库语句的返回值是entity的类名,注意首字母无需小写。
6.Service接口中无需添加修改,需要修改接口的实现类
利用注解:@Service
@Service//声明的bean的ID为对应类名的首字母小写=userServiceImpl
//@Service("us72") //bean的ID=us72
//类上的@Transactional对类中的所有没有单独制定事务属性的方法有效
//如果方法xx上有单独制定的事务属性,则类上的@Transactional对方法xx无效
增删改需要用到的事务配置:
@Transactional(isolation=Isolation.DEFAULT,propagation=Propagation.REQUIRED,readOnly=false,rollbackFor=Exception.class)
单独的查询配置:
@Transactional(propagation=Propagation.SUPPORTS):如果在查詢情況下,如果有事务不会融入一个事务中
满足Service依赖的DAO:
使用注解:@Resource(name="userDAO"):根据id名查找,默认首字母小写的DAO接口名
@Autowired:根据DAO的类型查找
封装的DAO类型:为DAO接口,非DAO的实现类,在SSM中无DAO的实现类。
7.Action层中,无需在applicationContext.xml配置,利用注解即可。
//@Controller//声明的Bean的ID为=对应类名的首字母小写=userAction
@Controller("ua72")//bean的id为ua72:可以起别名,
@Scope("prototype") 设置是否单例,默认是单例,但是Action是非单例
//@Scope(value="prototype"):value属性名可以省略。
封装的Service为Service的实现类:例如:privateUserService us;
set,get可以省略。
//工厂中和userService同类的bean,会自动注入给当前属性
//@Autowired
@Resource(name="userServiceImpl"):默认为serviceImpl的首字母小写类名。
在JAVA文件中,封装的都是接口,而不是实现,注入的都是实现类。
8.Struts.xml配置文件修改:
class属性:填写bean中Action类名,默认为首字母小写的Action名。
其他无变化。即可完成整合。