您好,以前的做法是Controller中定义Service的成员变量并设置好setter方法,在xml中将该Service的bean ID注入。
现在只要在Controller中用@Resource标签就ok了
@Resource(name="springManager")
private SpringManager springManager;
springMVC9
springMV C继承与spring 的上下文,可以得到spring中的bean,所以可以只用resouce注解来得到bean。 相较于struts2 具有天生的优势。
也解释了为什么spring是先启动 springMVC是后启动的
如果无法用注入的方式来得到bean,可以用上下文的方式来得到
WebApplicationContext ac1 = WebApplicationContextUtils.getWebApplicationContext(request.getSession().getServletContext());
springMVC12
Hibernate 5大对象
Configuration --- 上下文 context
SessionFactory -- 重量级对象 一个db一个sessionFactory
Session -- 一次连接
Transaction -- 事务
Query-- CRUD
spring配置文件为hibernate定义了 datasource / sessionFactory / transaction
和spring集成的时候 hibernate只需要定义hbm文件,将实体类放在hibernate容器中
实体类层由hibernate来管理
用注解配置
@Entity
@Table(name="T_USER")
public class User {
@Id
@GeneratedValue(generator = "system-uuid")
@GenericGenerator(name = "system-uuid", strategy = "uuid")
@Column(length=32)
private String id;
@Column(length=32)
private String userName;
….
}
DAO service层 用spring来管理 并对service层加上事务控制
Hibernate4 的session管理很好了, 不用spring的HibernateDaoSupport
只需要在DAO中引入sessionFactory就ok了
Spring的代理式事务
springMVC 中的重定向。 场景 添加用户不调到成功页面,而是通过servlet跳到展示页面
不返还到页面,跳到另一个servlet 请求
return "redirect:/user/getAllUser";
--------------
Hibernate 5大对象
Configuration --- 上下文 context
SessionFactory -- 重量级对象 一个db一个sessionFactory
Session -- 一次连接
Transaction -- 事务
Query和Criteria -- CRUD
----------------------
spring 是Listener ---只需要启动一次
Struts2 是filter
springMVC 是Servlet
web容器的启动顺序
context-param > listener > filer > servlet