环境配置
引入相关的依赖
为什么要整合MVC
- MVC框架提供了控制器(Controller)调用Service
- 请求响应的处理
- 接受请求参数 requset.getParameter("xx")
- 控制程序的运行流程
- 试图解析
JSP
、JSON
、Freemarker
、Thymeleaf
spring可以整合哪些MVC框架
- ~~ struts1 ~~
- ~~ webwork ~~
- ~~ jsf ~~
- struts2
- springMVC
Spring整合MVC的核心思路
问题1:Web开发过程中如何创建工厂
ApplicationContext ctx = new ClassPathXmlApplicationContext("/applicationContext.xml");[spring环境]
ApplicationContext ctx = new WebXmlApplicationContext("xx");[web环境]
问题2:如何保证工厂唯一且被共用
共用:工厂存储在ServletContext这个作用域中,ServletContext.setAttritube("xxxx",ctx);
唯一:ServletContext对象创建的同时执行上述的创建工厂的方法。
ServletContextlistener在Servlet对象创建的同时,被调用(只会被调用一次),把创建Servlet工厂的代码,写在ServletContextListener中,也会只调用一次,最终工厂就保证了唯一性
总结:
在开发和创建工厂的过程中,既要创建工厂又要保证工厂的唯一和被大家所共用。
Spring中封装了ContextLoaderListener可以执行(即创建工厂,也保存工厂,确保唯一):
ApplicationContext ctx = new ClassPathXmlApplicationContext("/applicationContext.xml");
ServletContext.setAttritube("xxxx",ctx);
Spring开发过程中多配置文件的处理
spring会根据需要,把配置信息分门别类的放置在多个配置文件中,便于后续的管理和维护。
*** 注意:虽然提供了多个配置文件,单是后续的应用过程中,还需要进行整合。***
- 通配符方式
1、非web环境
ApplicationContext ctx = new ClassPathXmlApplicationContext("/applcationContext-*.xml");
2、web环境
<context-param>
<param-name>contextCOnfigLication</param-name>
<param-name>classpath:applicationContext-*.xml</param-name>
</context-param>
<import />
标签
applicationContext.xml的目的 整合其他的配置内容
<import rescource="applicationContext-dao.xml"/>
<import rescource="applicationContext-service.xml"/>
<import rescource="applicationContext-controller.xml"/>
1、非web环境
ApplicationContext ctx = new ClassPathXmlApplicationContext("/applicationContext.xml");
2、web环境
<context-param>
<param-name>contextCOnfigLication</param-name>
<param-name>classpath:applicationContext.xml</param-name>
</context-param>
评论区