1, 包的划分以及工作过程:
表现层 业务层 数据层 实体类 数据库
web.action <----> service <----> dao <----> domain <----> DB
----面向接口编程,所以数据层,业务层都是用接口,再用实现类继承
2, 注入(这里的service跟dao直接使用类)
1)使用Struts2注解编写Action
Action类上@Controller
手动注入的Service类用@Autowired
如果不在struts.xml回显该Action的方法返回值,可以在对应方法添加@Action @Result
2)编写Service通过@Transactional添加事务支持
Service类上@Service,@Transactional(提供事务支持)
手动注入的DAO类用@Autowired
3)编写DAO注入HibernateTemplate
Action类上@Repository
手动注入的HibernateTemplate类用@Autowired
--就可以通过HibernateTemplate类实例进行数据操作
4)配置applicationContext.xml
a,使用注解类自动扫描 context:component-scan
b,通过AnnotationSessionFactoryBean加载Hibernate使用注解的PO类
packagesToScan 会自动扫描指定包的所有注解PO类
c,向DAO注入HibernateTemplate对象
通过tx:annotation-driven 配置注解驱动事务
3,SSH框架整合原理:
Struts2 整合 Spring3
ma: struts2自己管理Action, 将Service自动装配
mb: struts2将Action创建权交给Spring,需要配置Action 为prototype
Spring3整合Hibernate
ma:在spring中直接引入 hibernate.cfg.xml 配置文件
mb:将hibernate属性 配置到Spring 中