springmvc框架搭建之xml配置说明(spring4+hibernate4)
SpringMVC+Spring+Hibernate框架整合原理,作用及使用方法
SpringMVC+Spring+Hibernate框架整合原理,作⽤及使⽤⽅法SSM框架是spring MVC ,spring和mybatis框架的整合,是标准的MVC模式,将整个系统划分为表现层,controller层,service层,DAO层四层使⽤spring MVC负责请求的转发和视图管理spring实现业务对象管理,mybatis作为数据对象的持久化引擎原理:SpringMVC:1.客户端发送请求到DispacherServlet(分发器)2.由DispacherServlet控制器查询HanderMapping,找到处理请求的Controller3.Controller调⽤业务逻辑处理后,返回ModelAndView4.DispacherSerclet查询视图解析器,找到ModelAndView指定的视图5.视图负责将结果显⽰到客户端Spring:我们平时开发接触最多的估计就是IOC容器,它可以装载bean(也就是我们中的类,当然也包括service dao⾥⾯的),有了这个机制,我们就不⽤在每次使⽤这个类的时候为它初始化,很少看到关键字new。
另外spring的aop,事务管理等等都是我们经常⽤到的。
Mybatis:mybatis是对jdbc的封装,它让数据库底层操作变的透明。
mybatis的操作都是围绕⼀个sqlSessionFactory实例展开的。
mybatis通过配置⽂件关联到各实体类的Mapper⽂件,Mapper⽂件中配置了每个类对数据库所需进⾏的sql语句映射。
在每次与数据库交互时,通过sqlSessionFactory拿到⼀个sqlSession,再执⾏sql命令。
使⽤⽅法:要完成⼀个功能:1. 先写实体类entity,定义对象的属性,(可以参照数据库中表的字段来设置,数据库的设计应该在所有编码开始之前)。
2. 写Mapper.xml(Mybatis),其中定义你的功能,对应要对数据库进⾏的那些操作,⽐如 insert、selectAll、selectByKey、delete、update等。
spring4.x + hibernate4.x 配置详解
spring4.x + hibernate4.x 配置详解关于spring和hibernate的使用以及特征等等,在此不再啰嗦,相信大家也都知道,或者去搜索一下即可。
本篇博文的内容主要是我最近整理的关于spring4.x 和hibernate 4.x 相关配置和使用方式,当然spring3.x以及hibernate4.x也可以借鉴。
首先是配置文件web.xml 增加以下代码即可<!-- 加载spring相关的配置文件--><context-param><param-name>contextConfigLocation</param-name><param-value>classpath*:/applicationContext.xml</param-value> </context-param><!-- 启用spring监听--><listener><listener-class>org.springframework.web.context.ContextLoaderListener</l istener-class></listener>然后建立 applicationContext.xml 文件,src下。
文件内容如下,注释我尽量写的很详细<beans xmlns:xsi="/2001/XMLSchema-instance"xmlns="/schema/beans"xmlns:aop="http://ww /schema/aop"xmlns:context="/schema/context"xmlns:tx="ht tp:///schema/tx"xmlns:cache="/schema/cache"xmlns:p="http:// /schema/p"xsi:schemaLocation="/schema/beans /schema/beans/spring-beans-4.0.xsd/schema/aop/schema/aop/spring-aop-4.0.xsd/schema/context/schema/context/spring-context-4.0.xsd/schema/tx/schema/tx/spring-tx-4.0.xsd/schema/cache http://www.springframewor /schema/cache/spring-cache-4.0.xsd"><!-- 引入properties文件--><context:property-placeholder location="classpath*:/appConfig.properties"/> <!-- 定义数据库连接池数据源bean destroy-method="close"的作用是当数据库连接不使用的时候,就把该连接重新放到数据池中,方便下次使用调用--> <bean id="dataSource"class="boPooledDataSourc e"destroy-method="close"><!-- 设置JDBC驱动名称--><property name="driverClass"value="${jdbc.driver}"/><!-- 设置JDBC连接URL --><property name="jdbcUrl"value="${jdbc.url}"/><!-- 设置数据库用户名--><property name="user"value="${ername}"/><!-- 设置数据库密码--><property name="password"value="${jdbc.password}"/><!-- 设置连接池初始值--><property name="initialPoolSize"value="5"/></bean><!-- 配置sessionFactory --><bean id="sessionFactory"class="org.springframework.orm.hibernate4.LocalSessionFactoryBean"><!-- 数据源--><property name="dataSource"ref="dataSource"/><!-- hibernate的相关属性配置--><property name="hibernateProperties"><value><!-- 设置数据库方言-->hibernate.dialect=org.hibernate.dialect.MySQLDialect<!-- 设置自动创建|更新|验证数据库表结构-->hibernate.hbm2ddl.auto=update<!-- 是否在控制台显示sql -->hibernate.show_sql=true<!-- 是否格式化sql,优化显示-->hibernate.format_sql=true<!-- 是否开启二级缓存-->e_second_level_cache=false<!-- 是否开启查询缓存-->e_query_cache=false<!-- 数据库批量查询最大数-->hibernate.jdbc.fetch_size=50<!-- 数据库批量更新、添加、删除操作最大数-->hibernate.jdbc.batch_size=50<!-- 是否自动提交事务-->hibernate.connection.autocommit=true<!-- 指定hibernate在何时释放JDBC连接-->hibernate.connection.release_mode=auto<!-- 创建session方式hibernate4.x 的方式-->hibernate.current_session_context_class=org.springframework.or m.hibernate4.SpringSessionContext<!-- javax.persistence.validation.mode默认情况下是auto的,就是说如果不设置的话它是会自动去你的classpath下面找一个bean-validation**包所以把它设置为none即可-->javax.persistence.validation.mode=none</value></property><!-- 自动扫描实体对象tdxy.bean的包结构中存放实体类--><property name="packagesToScan"value="tdxy.bean"/> </bean><!-- 定义事务管理--><bean id="transactionManager"class="org.springframework.orm.hibernate4.HibernateTransactionManager "><property name="sessionFactory"ref="sessionFactory"/> </bean><!-- 定义Autowired 自动注入bean --><bean class="org.springframework.beans.factory.annotation.AutowiredAnnotati onBeanPostProcessor"/><!-- 扫描有注解的文件base-package 包路径--><context:component-scan base-package="tdxy"/><tx:advice id="txAdvice"transaction-manager="transactionManager"> <tx:attributes><!-- 事务执行方式REQUIRED:指定当前方法必需在事务环境中运行,如果当前有事务环境就加入当前正在执行的事务环境,如果当前没有事务,就新建一个事务。
spring MVC原理及配置
spring MVC原理及配置springmvc原理及配置springmvc原理及配置1.springmvc详述:springmvc就是spring提供更多的一个强悍而有效率的web框架。
借助注释,springmvc提供更多了几乎就是pojo的研发模式,使控制器的研发和测试更加直观。
这些控制器通常不轻易处置命令,而是将其委托给spring上下文中的其他bean,通过spring的倚赖转化成功能,这些bean被转化成至控制器中。
springmvc主要由dispatcherservlet、处理器映射、处理器(控制器)、视图解析器、视图组成。
他的两个核心是两个核心:处理器映射:选择使用哪个控制器来处理请求视图解析器:选择结果应该如何渲染通过以上两点,springmvc确保了如何挑选掌控处置命令和如何挑选视图展现出输入之间的松耦合。
2.springmvc运行原理这里写图片描述(2)找寻处理器:由dispatcherservlet控制器查阅一个或多个handlermapping,找出处置命令的controller。
(3)调用处理器:dispatcherservlet将请求提交到controller。
(4)(5)调用业务处置和回到结果:controller调用业务逻辑处置后,回到modelandview。
3.springmvc接口解释(1)dispatcherservlet接口:spring提供的前端控制器,所有的请求都有经过它来统一分发。
在dispatcherservlet将请求分发给springcontroller 之前,需要借助于spring提供的handlermapping定位到具体的controller。
(2)handlermappingUSB:能够完成客户请求到controller映射。
(3)controller接口:须要为mammalian用户处置上述命令,因此同时实现controllerUSB时,必须确保线程安全并且可以器重。
SpringMVC框架搭建流程(完整详细版)
SpringMVC框架搭建流程(完整详细版)SpringMVC框架搭建流程开发过程1)配置DispatcherServlet前端控制器2)开发处理具体业务逻辑的Handler(@Controller、 @RequestMapping)3) xml配置⽂件配置controller扫描,配置springmvc三⼤件4)将xml⽂件路径告诉springmvc(DispatcherServlet)详细流程:创建⽬录新建maven项⽬,注意选择webapp⾻架。
创建成功之后会发现没有src等⽬录,这些需要我们⼿动创建:在src下⾯新建main,main下⾯新建java⽬录,选择java⽬录,右键,在main下⾯继续新建resource⽬录,选择resource⽬录,右键,pom.xmlpom.xml<?xml version="1.0" encoding="UTF-8"?><project xmlns="/POM/4.0.0"xmlns:xsi="/2001/XMLSchema-instance"xsi:schemaLocation="/POM/4.0.0 /xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion><groupId></groupId><artifactId>springmvc-demo</artifactId><version>1.0-SNAPSHOT</version><packaging>war</packaging><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><piler.source>11</piler.source><piler.target>11</piler.target></properties><dependencies><!--引⼊spring webmvc的依赖--><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>5.1.12.RELEASE</version></dependency></dependencies><build><plugins><plugin><groupId>org.apache.tomcat.maven</groupId><artifactId>tomcat7-maven-plugin</artifactId><version>2.2</version><configuration><port>8080</port><path>/</path></configuration></plugin></plugins></build></project>注意Tomcat7插件是⽤来运⾏项⽬的,右侧运⾏:springmvc相关配置main⽂件夹下⾯新建webapp⽂件夹,webapp下⾯新建WEB-INF,下⾯新建web.xml<!DOCTYPE web-app PUBLIC"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN""/dtd/web-app_2_3.dtd" ><web-app><display-name>Archetype Created Web Application</display-name><servlet><servlet-name>springmvc</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><init-param><param-name>contextConfigLocation</param-name><param-value>classpath:springmvc.xml</param-value></init-param></servlet><servlet-mapping><servlet-name>springmvc</servlet-name><!--⽅式⼀:带后缀,⽐如*.action *.do *.aaa该种⽅式⽐较精确、⽅便,在以前和现在企业中都有很⼤的使⽤⽐例⽅式⼆:/ 不会拦截 .jsp,但是会拦截.html等静态资源(静态资源:除了servlet和jsp之外的js、css、png等)为什么配置为/ 会拦截静态资源因为tomcat容器中有⼀个web.xml(⽗),你的项⽬中也有⼀个web.xml(⼦),是⼀个继承关系⽗web.xml中有⼀个DefaultServlet, url-pattern 是⼀个 /此时我们⾃⼰的web.xml中也配置了⼀个 / ,覆写了⽗web.xml的配置为什么不拦截.jsp呢?因为⽗web.xml中有⼀个JspServlet,这个servlet拦截.jsp⽂件,⽽我们并没有覆写这个配置,所以springmvc此时不拦截jsp,jsp的处理交给了tomcat如何解决/拦截静态资源这件事?⽅式三:/* 拦截所有,包括.jsp--><!--拦截匹配规则的url请求,进⼊springmvc框架处理--><url-pattern>/</url-pattern></servlet-mapping></web-app>⾥⾯配置了springmvc相关的配置,引⼊了springmvc.xml:在resource⽬录下新建springmvc.xml:<?xml version="1.0" encoding="UTF-8"?><beans xmlns="/schema/beans"xmlns:xsi="/2001/XMLSchema-instance"xmlns:context="/schema/context"xmlns:mvc="/schema/mvc"xsi:schemaLocation="/schema/beanshttps:///schema/beans/spring-beans.xsd/schema/contexthttps:///schema/context/spring-context.xsd/schema/mvchttps:///schema/mvc/spring-mvc.xsd"><!--开启controller扫描--><context:component-scan base-package=".controller"/><!--配置springmvc的视图解析器--><bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"><property name="prefix" value="/WEB-INF/jsp/"/><property name="suffix" value=".jsp"/></bean><!--⾃动注册最合适的处理器映射器,处理器适配器(调⽤handler⽅法)--><mvc:annotation-driven/></beans>在java⽬录下新建包.controller,下⾯新建DemoController:package .controller;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.servlet.ModelAndView;import java.util.Date;/*** @author lyj* @Title: DemoController* @ProjectName springmvc-demo* @Description: TODO* @date 2020/6/9 21:21*/@Controller@RequestMapping("/demo")public class DemoController {/*** http://localhost:8080/demo/handle01*/@RequestMapping("/handle01")public ModelAndView handle01(){Date date=new Date();ModelAndView modelAndView=new ModelAndView();modelAndView.addObject("date",date);modelAndView.setViewName("success");return modelAndView;}}在WEB-INF下⾯新建jsp⽂件夹,下⾯新建success.jsp:<%@ page language="java" isELIgnored="false" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <html lang="en"><head><meta charset="UTF-8"><title>Title</title></head><body>当前时间 ${date}</body></html>完毕后整个项⽬结构如下:测试:浏览器访问:。
SpringMVC、SpringMVCXML配置(纯XML方式)
SpringMVC、SpringMVCXML配置(纯XML⽅式)1、引⼊SrpingMVC所使⽤的Java包:cglib-nodep-2.1_3.jar、commons-logging.jar、spring-aspects-4.1.7.RELEASE.jar、spring-beans-4.1.7.RELEASE.jar、spring-context-4.1.7.RELEASE.jar、spring-core-4.1.7.RELEASE.jar、spring-web-4.1.7.RELEASE.jar、spring-webmvc-4.1.7.RELEASE.jar2、新建Web项⽬,配置Web.xml:<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="/2001/XMLSchema-instance" xmlns="/xml/ns/javaee" xmlns:web="/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="/xml/ns/javaee http://ja <display-name>springmvc</display-name><!-- 配置Spring --><listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener><!-- 配置SpringMVC的编码格式 --><filter><filter-name>CharacterEncodingFilter</filter-name><filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class><init-param><param-name>encoding</param-name><param-value>UTF-8</param-value></init-param></filter><filter-mapping><filter-name>CharacterEncodingFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping><!-- 加载其他的配置⽂件 --><context-param><param-name>contextConfigLocation</param-name><param-value>/WEB-INF/spring-servlet.xml</param-value></context-param><!-- 配置Spring的前置控制器DispatcherServlet --><servlet><servlet-name>spring</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><load-on-startup>1</load-on-startup></servlet><!-- 配置Spring的url后缀 --><servlet-mapping><servlet-name>spring</servlet-name><url-pattern>*.do</url-pattern></servlet-mapping></web-app>3、配置spring-servlet.xml(基中的部分MVC的配置可另外再分⼀个bean.xml配置,这⾥为了⽅便统⼀放在⼀个⾥⾯):<beans xmlns="/schema/beans"xmlns:xsi="/2001/XMLSchema-instance"xmlns:context="/schema/context"xmlns:mvc="/schema/mvc"xsi:schemaLocation="/schema/beans/schema/beans/spring-beans-4.1.xsd/schema/context/schema/context/spring-context-4.1.xsd/schema/mvc/schema/mvc/spring-mvc-4.1.xsd"><!-- controller⽅法调⽤规则:通过url中的method参数指定要执⾏的controller⽅法--><bean id="methodNameResolver" class="org.springframework.web.servlet.mvc.multiaction.ParameterMethodNameResolver"><property name="paramName" value="action" /><property name="defaultMethodName" value="view" /></bean><!-- 配置MVC的前缀(prefix)和后缀(suffix) --><bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"><property name="viewClass" value="org.springframework.web.servlet.view.JstlView" /><!-- <property name="prefix" value="/WEB-INF/" /> --><property name="suffix" value=".jsp" /></bean><!-- 以下是控制器的配置 --><bean name="urlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping" ><property name="order" value="1" /><property name="mappings"><props><prop key="user.do">userController</prop><prop key="index.do">indexController</prop></props></property></bean><bean name="userController" class="erController"><property name="userIService" ref="userIService"></property></bean><bean name="indexController" class="cn.raffaello.controller.IndexController" /><!-- ServiceBean的配置 --><bean name="userIService" class="erServiceImpl" /></beans>4、新建Model,User:public class User {private Integer id;private String name;public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getName() {return name;}public void setName(String name) { = name;}}5、新建ServiceBean并实现⼀个模拟的数据保存添加操作:public interface UserIService {void saveOrUpdate(User user);User getUserById(Integer id);void delete(Integer id);List<User> getUsers();Integer getNewId();}public class UserServiceImpl implements UserIService {private Map<Integer,Object> map=new HashMap<Integer,Object>(); private Map<String,Integer> idCount=new HashMap<String,Integer>(); @Overridepublic void saveOrUpdate(User user) {map.put(user.getId(), user);}@Overridepublic User getUserById(Integer id) {if(map.containsKey(id)){return (User)map.get(id);}return new User();}@Overridepublic void delete(Integer id) {map.remove(id);}@Overridepublic List<User> getUsers() {List<User> list=new ArrayList<User>();for(Integer key : map.keySet()){list.add((User)map.get(key));}return list;}@Overridepublic Integer getNewId() {if(!idCount.containsKey("ids")){Integer id=1;idCount.put("ids", id);return id;}else{Integer id=idCount.get("ids");id=id+1;idCount.put("ids", id);return id;}}}6、新建控制器UserController:public class UserController implements Controller{private UserIService userIService;@Overridepublic ModelAndView handleRequest(HttpServletRequest req,HttpServletResponse res) throws Exception {String param="";param=req.getParameter("param");//新增控制器跳转if(param.trim().equals("add")){return new ModelAndView("/WEB-INF/userAdd");}else if(param.trim().equals("edit")){//编辑控制器跳转Integer id=-1;if(!req.getParameter("userId").trim().equals("")){id=Integer.parseInt(req.getParameter("userId").trim());}User user=userIService.getUserById(id);req.setAttribute("user", user);return new ModelAndView("/WEB-INF/userAdd");}else if(param.trim().equals("userList")){//列表页⾯跳转List<User> list=userIService.getUsers();req.setAttribute("userList", list);return new ModelAndView("/WEB-INF/userList");}else if(param.trim().equals("save")){//新增的保存操作User user=new User();String name=req.getParameter("name").trim();user.setId(userIService.getNewId());user.setName(name);userIService.saveOrUpdate(user);List<User> list=userIService.getUsers();req.setAttribute("userList", list);return new ModelAndView("/WEB-INF/userList");}else if(param.trim().equals("update")){//修改的保存操作Integer id=-1;if(!req.getParameter("userId").trim().equals("")){id=Integer.parseInt(req.getParameter("userId").trim());}String name=req.getParameter("name").trim();User user=userIService.getUserById(id);user.setName(name);userIService.saveOrUpdate(user);List<User> list=userIService.getUsers();req.setAttribute("userList", list);return new ModelAndView("/WEB-INF/userList");}else if(param.trim().equals("delete")){//删除操作Integer id=-1;if(!req.getParameter("userId").trim().equals("")){id=Integer.parseInt(req.getParameter("userId").trim());}userIService.delete(id);List<User> list=userIService.getUsers();req.setAttribute("userList", list);return new ModelAndView("/WEB-INF/userList");}else if(param.trim().equals("detail")){//详细⽤户页⾯Integer id=-1;if(!req.getParameter("userId").trim().equals("")){id=Integer.parseInt(req.getParameter("userId").trim());User user=userIService.getUserById(id);req.setAttribute("user", user);}return new ModelAndView("/WEB-INF/userDetail");}else if(param.trim().equals("list")){// list列表List<User> list=userIService.getUsers();req.setAttribute("userList", list);return new ModelAndView("/WEB-INF/userList");}return new ModelAndView("fail");//return forword("stu/studentList", context); //同样也可以使⽤forword进⾏页⾯跳转//使⽤Map向前台输出数据时,获取操作同Request⼀样,可以在前台使⽤${名字}来获取如下例,可以使⽤${message}获取 //Map<String,String> resultMap = new HashMap<String,String>();//resultMap.put("message", "欢迎来到⾸页111");//return new ModelAndView("index",resultMap);}public UserIService getUserIService() {return userIService;}public void setUserIService(UserIService userIService) {erIService = userIService;}}7、然后就是页⾯啦:新增页⾯:<body><a href="user.do?param=userList">⽤户列表</a><h3>新增⽤户</h3><form action="user.do" method="post"><c:if test="${user!=null }"><input type="hidden" name="param" value="update" /></c:if><c:if test="${user==null }"><input type="hidden" name="param" value="save" /></c:if><input type="hidden" name="userId" value="${user.id }" />⽤户名:<input type="text" name="name" value="${ }" /><input type="submit" value="提交" /></form></body>访问地址:http://localhost/user.do?param=add修改页⾯也是此页⾯,访问地焉http://localhost/user.do?param=edit&userId=12⽤户信息页⾯:<body><a href="user.do?param=userList">⽤户列表</a><h3>⽤户详细信息:</h3><ul><li>ID:${user.id }</li><li>⽤户名:${ }</li></ul></body>⽤户列表页⾯:<body><a href="user.do?param=add">新增⽤户</a><h3>⽤户列表:</h3><table><tr><td>ID</td><td>姓名</td><td>操作</td></tr><c:forEach items="${userList }" var="user"><tr><td>${user.id }</td><td>${ }</td><td><a href="user.do?param=edit&userId=${user.id }">修改</a></td></tr></c:forEach></table></body>下图是效果图:其他的SpringMVC⽂档:Spring各个版本下载:。
SpringMVC配置文件-web.xml的配置
SpringMVC配置⽂件-web.xml的配置SpringMVC配置⽂件(重点)@Web.xml@核⼼拦截器(必配)<!-- spring 核⼼转发器,拦截指定⽬录下的请求,分配到配置的拦截路径下处理 --><servlet><servlet-name>dispatcher</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><init-param><!-- 指定springmvc配置⽂件的路径如果不指定默认为:/WEB-INF/${servlet-name}-servlet.xml --><param-name>contextConfigLocation</param-name><param-value>classpath:springmvc.xml</param-value></init-param> <load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>dispatcher</servlet-name><!-- --><url-pattern>/</url-pattern></servlet-mapping>加载spring容器<!-- 加载spring容器 --><context-param><param-name>contextConfigLocation</param-name><param-value>classpath:spring/applicationContext-*.xml</param-value></context-param><listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener>编码过滤器<!-- spring 编码过滤器 --><filter><filter-name>characterEncodingFilter</filter-name><filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class><init-param><param-name>encoding</param-name><param-value>UTF-8</param-value></init-param><init-param><param-name>forceEncoding</param-name><param-value>true</param-value></init-param></filter><!-- 编码过滤器过滤的路径 --><filter-mapping><filter-name>characterEncodingFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping>url-pattern配置讲解在 servlet 和 filter 中我们都需要配置 url-pattern,但这个配置的解析规则有哪⼏种我们接下来就详细的说⼀下。
SpringMVC Spring4.0 Hibernate 简单的整合
SpringMVC+Spring4.0+Hibernate 简单的整合学习的初始一个Hello World。
1、搭建好环境工欲善其事,必先利其这是需要的jar简单的说下:standard.jar 这个jar包是我们在jsp中使用JSTL标签的时候用到的。
你也可以使用SpringEL 。
servlet-api.jar 这是你在SpringMvc中用到HttpServletRequest 等这些类。
导入的包都OK了,上传下载的包我没有导。
现在就应该到配置文件了。
2、配置文件2.1web.xml项目使用了什么框架。
看这个配置就知道了。
org.springframework.web.util.Log4jConfigListenerorg.springframework.web.context.ContextLoaderListener contextConfigLocationclasspath:applicationContext*.xmlspringmvcorg.springframework.web.servlet.DispatcherServletcontextConfigLocationclasspath*:springmvc-servlet.xml1springmvc2.2 applicationContext.xml 的配置我的数据库连接使用的是spirng进行连接。
然后使用了mysql.properties 配置的文件解耦。
注意如果你的spring、hibernate 的版本和我的不一样。
你修改下面绿色字体版本号。
hibernate4.LocalSessionFactoryBean">.hibernate4.HibernateTransactionManager">2.3 mysql.propertiese#注意格式jdbcUrl = jdbc:mysql:///springdriverClass = com.mysql.jdbc.Driveruser = rootpassword = root2.4 hibernate的配置org.hibernate.dialect.MySQL5InnoDBDialecttrueupdate2.5 SpringMvc的配置springmvc-servlet.xm3、配置文件已经OK了,我主要是写个登录的HelloWorld 我都是居于注解的方式来实现的。
springMVC配置(XML配置详解)
springMVC配置(XML配置详解)原⽂出⾃:web.xml配置:servlet><servlet-name>dispatcher</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><init-param><description>加载/WEB-INF/spring-mvc/⽬录下的所有XML作为Spring MVC的配置⽂件</description><param-name>contextConfigLocation</param-name><param-value>/WEB-INF/spring-mvc/*.xml</param-value></init-param><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>dispatcher</servlet-name><url-pattern>*.htm</url-pattern></servlet-mapping>这样,所有的.htm的请求,都会被DispatcherServlet处理;初始化 DispatcherServlet 时,该框架在 web 应⽤程序WEB-INF ⽬录中寻找⼀个名为[servlet-名称]-servlet.xml的⽂件,并在那⾥定义相关的Beans,重写在全局中定义的任何Beans,像上⾯的web.xml中的代码,对应的是dispatcher-servlet.xml;当然也可以使⽤<init-param>元素,⼿动指定配置⽂件的路径;dispatcher-servlet.xml 配置:<?xml version="1.0" encoding="UTF-8"?><beans xmlns="/schema/beans"xmlns:xsi="/2001/XMLSchema-instance"xmlns:mvc="/schema/mvc"xmlns:p="/schema/p"xmlns:context="/schema/context"xmlns:aop="/schema/aop"xmlns:tx="/schema/tx"xsi:schemaLocation="/schema/beans/schema/beans/spring-beans-3.0.xsd/schema/context/schema/context/spring-context-3.0.xsd/schema/aop/schema/aop/spring-aop-3.0.xsd/schema/tx/schema/tx/spring-tx-3.0.xsd/schema/mvc/schema/mvc/spring-mvc-3.0.xsd/schema/context/schema/context/spring-context-3.0.xsd"><!--使Spring⽀持⾃动检测组件,如注解的Controller--><context:component-scan base-package="com.minx.crm.web.controller"/><bean id="viewResolver"class="org.springframework.web.servlet.view.InternalResourceViewResolver"p:prefix="/WEB-INF/jsp/"p:suffix=".jsp" /></beans>第⼀个Controller:package com.minx.crm.web.controller;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;@Controllerpublic class IndexController {@RequestMapping("/index")public String index() {return "index";}}@Controller注解标识⼀个控制器,@RequestMapping注解标记⼀个访问的路径(/index.htm),return "index"标记返回视图(index.jsp);注:如果@RequestMapping注解在类级别上,则表⽰⼀相对路径,在⽅法级别上,则标记访问的路径;从@RequestMapping注解标记的访问路径中获取参数:Spring MVC ⽀持RESTful风格的URL参数,如:@Controllerpublic class IndexController {@RequestMapping("/index/{username}")public String index(@PathVariable("username") String username) {System.out.print(username);return "index";}}在@RequestMapping中定义访问页⾯的URL模版,使⽤{}传⼊页⾯参数,使⽤@PathVariable 获取传⼊参数,即可通过地址:http://localhost:8080/crm/index/tanqimin.htm 访问;根据不同的Web请求⽅法,映射到不同的处理⽅法:使⽤登陆页⾯作⽰例,定义两个⽅法分辨对使⽤GET请求和使⽤POST请求访问login.htm时的响应。
IDEA用maven创建springMVC项目和配置(XML配置和Java配置)
IDEA⽤maven创建springMVC项⽬和配置(XML配置和Java配置)1、DEA创建项⽬新建⼀个maven project,并且选择webapp原型。
然后点击next这⾥的GroupId和ArtifactID随意填写,但是ArtifactID最好和你的项⽬⼀名⼀样然后next为了快⼀点创建,我们添加⼀个属性值,如图中亮的所⽰,点右边的加号,name=archetypeCatalog value=internal。
这⾥我们选择使⽤IDEA⾃带的maven,下⾯的两个分别是你的maven配置⽂件和你的仓库地址,我记得idea的maven⼀开始是没有setting.xml的,所以你要去maven的⽬录⾥⾯拷⼀份setting.xml到你的仓库中。
idea的maven在安装路径的plugins⽂件夹下,即X:\xxx\JetBrains\IntelliJ IDEA 2016.3.2\plugins\plugins\maven\lib\maven3\conf\setting.xml拷贝到你的⽤户⽂件夹下的.m2⽂件夹下,为了之后能够快速的下载依赖包,我们要加⼀个官⽅库的镜像,因为maven的官⽅仓库在国外,太慢了。
我们在你的.m2⽂件夹下的setting.xml中添加如下代码:<mirror><id>alimaven</id><mirrorOf>central</mirrorOf><name>aliyun maven</name><url>/nexus/content/repositories/central/</url></mirror>具体位置如下图所⽰这个是阿⾥的库,所以很快。
做完之后我们回到idea,点击next,然后填写项⽬名,然后finish。
接下来idea开始创建项⽬,这⾥你要把maven⾃动导⼊打开。
spring mvc的配置
spring mvc的配置spring mvc配置文件xml<?xml version="1.0" encoding="UTF-8"?><beans xmlns="/schema/beans"xmlns:xsi="/2001/XMLSchema-instance" xmlns:conte xt="/schema/context"xmlns:aop="/schema/aop" xmlns:tx="h ttp:///schema/tx"xmlns:mvc="/schema/mvc"xsi:schemaLocation="/schema/beans http://www.sp /schema/beans/spring-beans-2.5.xsd/schema/aop http://www.spri /schema/aop/spring-aop-2.5.xsd/schema/tx http://www.sprin /schema/tx/spring-tx-2.5.xsd/schema/context http://www. /schema/context/spring-context-2.5.xsd/schema/mvc/schema/mvc/spring-mvc-3.0.xsd"> <!-- 连接池配置 --><bean id="dataSource" class="mons.dbcp.BasicDataSou rce"><property name="driverClassName" value="com.mysql.jdbc.Driver "></property><property name="url"value="jdbc:mysql://localhost:3306/myBatis?useUnicode=tru e&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull" ></property><property name="username" value="root"></property><property name="password" value="root"></property><property name="maxActive" value="100"></property><property name="maxIdle" value="30"></property><property name="maxWait" value="500"></property><property name="defaultAutoCommit" value="true"></property> </bean><!-- MyBatis的 sqlSessionFactory --><bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSession FactoryBean"><property name="configLocation" value="classpath:MyBatis-Conf iguration.xml"></property><property name="dataSource" ref="dataSource" /></bean><!-- 以下是springMVC配置 --><bean id="viewResolver"class="org.springframework.web.servlet.view.InternalResourceV iewResolver"><property name="prefix" value="/WEB-INF/jsp/" /><property name="suffix" value=".jsp" /></bean><!-- 使Spring关注Annotation --><context:annotation-config /><!-- 让Spring通过自动扫描来查询和管理Bean --><context:component-scan base-package="com.controller" /><context:component-scan base-package="com.dao" /><context:component-scan base-package="com.service.impl" /><context:component-scan base-package="com.validator" /><!-- 静态资源 --><mvc:default-servlet-handler/><!-- 拦截器配置--><mvc:interceptors><mvc:interceptor><mvc:mapping path="/user/getUser/**" /><bean class="erInterceptor"></bean></mvc:interceptor></mvc:interceptors><!-- 总错误处理--><bean id="exceptionResolver" class="org.springframework.web.servl et.handler.SimpleMappingExceptionResolver"><property name="defaultErrorView"><value>error/error</value></property><property name="defaultStatusCode"><value>500</value></property><property name="warnLogCategory"><value>org.springframework.web.servlet.handler.SimpleMapp ingExceptionResolver</value></property></bean><!-- 配置事务管理器 --><bean id="transactionManager"class="org.springframework.jdbc.datasource.DataSourceTransact ionManager"><property name="dataSource" ref="dataSource"></property></bean><!-- 配置事务的传播特性 --><tx:advice id="txAdvice" transaction-manager="transactionManager" ><tx:attributes><tx:method name="save*" propagation="REQUIRED" /><tx:method name="update*" propagation="REQUIRED" /><tx:method name="delete*" propagation="REQUIRED" /><tx:method name="query*" propagation="REQUIRED" /><tx:method name="*" read-only="true" /></tx:attributes></tx:advice><!-- 配置参与事务的类或方法 --><aop:config><aop:pointcut id="allServiceMethod" expression="execution(* c om.service.*.*.*(..))" /><aop:advisor pointcut-ref="allServiceMethod" advice-ref="txAd vice" /></aop:config></beans>。
SpringMVC---web.xml配置详解
SpringMVC---web.xml配置详解web.xml中需要配置的内容1.配置监听器<listener>它有两个监听器:1).<!--配置⽂件加载监听器--><listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener>ContextLoaderListener它的作⽤是启动web容器,(加载配置⽂件)⾃动装配applicationContext.xml配置信息(详细配置见下⾯)。
2).<!--spring log4j⽇志监听器配置--><listener><listener-class>org.springframework.web.util.Log4jConfigListener</listener-class></listener><context-param><param-name>Log4jConfigListener</param-name><!-- spring刷新log4j⽂件的时间间隔 --><param-value>10000</param-value></context-param>2.部署applicationContext.xml⽂件如果不写任何参数配置,默认的是在/WEB-INF/applicationContext.xml如果想要⾃定义⽂件名,需要在web.xml中加⼊contextConfigLocation这个context参数<!-- 配置applicationContext.xml --><context-param><param-name>contextConfigLocation</param-name><param-value>classpath:applicationContext*.xml</param-value></context-param>3.配置前端控制器DispatcherServlet:它是拦截请<!-- 配置DispatchServlet 的核⼼控制器 -->DispatchServlet是HTTP请求的中央调度处理器,它将web请求转发给controller层处理,它提供了敏捷的映射和异常处理机制。
springmvc+spring+hibernate整合详解注解形式事物管理
Springmvc4+spring4+hibernate4整合步骤前言:(声明式事务管理采用配置文件来配置事物)准备工作:1/安装并配置java运行环境2/数据库的安装配置(Mysql)3/安装并配置服务器(Tomcat)4/Maven5/ IntelliJIDEA的安装配置(本人使用的主要软件是IntelliJIDEA,没用eclipse什么的)6/ 使用IntelliJIDEA创建一个web app项目。
一、在pom.xml文件中引入相关框架整合的依赖二、SpringMvc配置:我们先配置下SpringMVC的配置:resources/META-INF/spring-mvc.xml(也可以把OK,SpringMVC配置完成,现在我们进行一下测试吧在controller层新建一个TestController,内容如下test.jsp网页如下:重启Tomcat服务器,然后浏览器访问localhost:8080/test如下图所示:三、springmvc+Spring整合这个就十分简单了,配置applicationContext.xml这个Spring的配置文件如下:完善web.xml配置文件如下:(applicationContext.xml在META-INF文件夹下配置如下),如果直接在resources下配置:classpath*:/applicationContext.xmlweb.xml配置文件中更改了三处:引入Spring配置文件Spring的监听器以及字符集过滤,以及加载Spring上下文配置OK,Spring+SpringMVC配置完成,下面我们开始测试:在service写一个TestServiceImpl实现TestService接口并实现其test()方法,代码如下:TestServiceTestServiceImplTestController更改如下:控制器这里我们运用了Spring的依赖注入自动装配。
springMVC配置文件详解
web.xml的配置web.xml应该是整个项目最重要的配置文件了,不过servlet3.0中已经支持注解配置方式了。
在servlet3.0以前每个servlet必须要在web.xml中配置servlet及其映射关系。
但是在spring框架中就不用了,因为Spring中是依赖注入(Dependency Injection)的也叫控制反转(Inversion of Control)。
但是也要配置一个重要的servlet,就是前端控制器(DispatcherServlet)。
配置方式与普通的servlet基本相似。
配置内容如下:<!-- 配置前端控制器--><servlet><servlet-name>spring</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><init-param><!-- ContextconfigLocation配置springmvc加载的配置文件适配器、处理映射器等--><param-name>contextConfigLocation</param-name><param-value>WEB-INF/classes/spring/springmvc.xml</param-value></init-param></servlet><servlet-mapping><servlet-name>spring</servlet-name><!-- 1、.action访问以.action结尾的由DispatcherServlet进行解析2、/,所有访问都由DispatcherServlet进行解析--><url-pattern>/</url-pattern></servlet-mapping>这里需要注意,springmvc.xml是spring配置文件,将在后面讨论。
SpringMVC的web.xml配置详解
SpringMVC的web.xml配置详解spring是⽬前最流⾏的框架。
创建java web项⽬时,我们⾸先会遇到的配置⽂件就是web.xml,这是javaweb为我们封装的逻辑,不在今天的研究中。
下⾯我们将简单讲讲web.xml中的配置。
⼀、⼀个空的web.xml<?xml version="1.0" encoding="UTF-8"?><web-app version="3.0" xmlns:xsi="/2001/XMLSchema-instance"xmlns="/xml/ns/javaee" xmlns:web="/xml/ns/javaee/web-app_3_0.xsd"xsi:schemaLocation="/xml/ns/javaee /xml/ns/javaee/web-app_3_0.xsd"id="WebApp_ID"></web-app>⼆、标签介绍web.xml中⽐较常见的标签以及其加载顺序为:context-param > listener > filter > servlet1、 <display-name>Archetype Created Web Application</display-name>display-name 是标识项⽬的名称,这个不是很常⽤,可有可⽆的,或者说不需要我们去在意的东西。
2、 <context-param><context-param><param-name>webAppRootKey</param-name><param-value>60000</param-value></context-param>context-param 是web.xml⾸先加载的标签,其下⼦标签有param-name和param-value.此所设定的参数,在JSP⽹页中可以使⽤下列⽅法来取得:${initParam.webAppRootKey}若在Servlet可以使⽤下列⽅法来获得:复制代码代码如下:String param_name=getServletContext().getInitParamter(“webAppRootKey”);3、listener<listener><listener-class>org.springframework.web.context.request.RequestContextListener</listener-class></listener>listenter在项⽬开始的时候就注⼊进来,尽在context-param之后,所以正常我们将spring配置在listener 中,这样⽅法spring 初始化相关的bean。
Springxml注入以及xml配置
Springxml注⼊以及xml配置xml 配置<?xml version="1.0" encoding="UTF-8"?><beans xmlns="/schema/beans"xmlns:xsi="/2001/XMLSchema-instance"xmlns:aop="/schema/aop"xmlns:tx="/schema/tx"xmlns:context="/schema/context"xsi:schemaLocation="/schema/beans/schema/beans/spring-beans-3.0.xsd/schema/aop/schema/aop/spring-aop-3.0.xsd/schema/tx/schema/tx/spring-tx-3.0.xsd/schema/context/schema/context/spring-context-3.0.xsd"></beans>注⼊⽅式<bean id="Addresa" class=".jieless.Addresa"/><bean id="pojo" class=".jieless.pojo" name="pojo2"><!--第⼀种普通值注⼊直接使⽤value 赋值--><property name="name" value="我是name"/><!--第⼆种 bean注⼊ ref--><property name="address" ref="Addresa"/><!--第三种数组注⼊--><property name="books"><array><value>西游记</value><value>红楼梦</value><value>三国演义</value><value>⽔浒传</value></array></property><!--第三种 List集合注⼊--><property name="hobby"><list><value>西游记List</value><value>红楼梦List</value><value>三国演义List</value><value>⽔浒传List</value></list></property><!--第三种 map集合注⼊--><property name="card"><map><entry key="⾝份证" value="4564645465465456678"></entry></map></property><!--第三种 set注⼊--><property name="wife"><set><value>QQ飞车</value><value>QQ炫舞</value><value>穿越⽕线</value></set></property><!--第三种 null注⼊--><property name="jieW"><null/></property><!--第四种 property注⼊--><property name="info"><props><prop key="driver">4564546</prop><prop key="url">hfafhafafafafaf</prop><prop key="root">root</prop><prop key="pwd">518340</prop></props></property></bean>。
spring-mvc.xml常用配置
spring-mvc.xml常用配置<?xml version"1.0" encoding"UTF-8"?> <beansxmlns"/schema/beans"xmlns:xsi"/2001/XMLSchema-instance" xmlns:context"/schema/c…<?xml version="1.0" encoding="UTF-8"?><beans xmlns="/schema/beans"xmlns:xsi="/2001/XMLSchema-instance"xmlns:context="/schema/context"xmlns:aop="/schema/aop"xmlns:tx="/schema/tx"xmlns:mvc="/schema/mvc"xsi:schemaLocation="/schema/beans<!-- 开启注解补充springmvc注解 --><mvc:annotation-driven/><!-- base-package 扫描项目中 .controller下的java类--><context:component-scan base-package=".controller"/><!-- 配置视图解析器如何把handler 方法返回值解析为实际的物理视图 --><bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"><property value="/WEB-INF/view/" name="prefix"/><property value=".jsp" name="suffix"/></bean><!-- 文件解析器 --><bean class="monsMultipartResolver"id="multipartResolver"><!-- 上传文件大小上限,单位为字节(10MB) --><property name="maxUploadSize"><value>10485760</value></property><!-- 请求的编码格式,必须和jSP的pageEncoding属性一致,以便正确读取表单的内容,默认为ISO-8859-1 --><property name="defaultEncoding"><value>UTF-8</value></property></bean><!-- 加载自定义拦截器 --><mvc:interceptors><mvc:interceptor><!-- 配置登录拦截器要拦截的url,代表拦截所有的url --><mvc:mapping path="/**" /><!-- 配置哪些url不被拦截(白名单) --><mvc:exclude-mapping path="/user/**" /><mvc:exclude-mapping path="/js/**" /><mvc:exclude-mapping path="/moban/**" /><mvc:exclude-mapping path="/bootstrap/**" /><!-- 声明登录拦截器类 --><bean class=".interceptor.LoginInterceptor" /></mvc:interceptor></mvc:interceptors><!-- 释放静态资源 --><!-- <mvc:resources location="/My97DatePicker/" mapping="/My97DatePicker/**"/> <mvc:resources location="/images/" mapping="/images/**"/> --><!-- 放开静态资源 --></beans>。
Java框架:spring框架整合hibernate框架的xml配置(使用注解的方式)
Java框架:spring框架整合hibernate框架的xml配置(使⽤注解的⽅式)<?xml version="1.0" encoding="UTF-8"?><beans xmlns="/schema/beans"xmlns:xsi="/2001/XMLSchema-instance"xmlns:context="/schema/context"xsi:schemaLocation="/schema/beans /schema/beans/spring-beans.xsd/schema/context /schema/context/spring-context.xsd"><!-- 开启Spring注解配置,但是还是需要将JavaBean⼿动交给Spring IOC容器进⾏管理 --><!-- <context:annotation-config/> --><!-- 会扫描以下@Component,@Repository,@Service,@Controller注解修饰的类,将其交给Spring容器进⾏管理,还包含context:annotation-config配置的所有功能@Component:⽆法区分该类为那⼀层操作时⽤该注解修饰@Repository:⽤于修饰数据库访问层代码(DAO)@Service:⽤于修饰业务逻辑层代码@Controller:⽤于修饰业务流程控制的代码以上四个注解会给JavaBean默认⼀个名字,规则是将类名的⾸字母⼩写但是这四个注解其实在根本没有啥区别--><context:component-scan base-package="com.zhidi"/><!-- 将JavaBean交给Spring容器进⾏管理 --><!-- autowire-candidate="false" 会将该bean排除到⾃动注⼊列表之外 --><bean class="erDao" autowire-candidate="false" /><!-- priamry=true,会将该bean做为优先注⼊的对象 --><bean class="erDao" primary="true"/><bean class="erDao" /><bean id="userDao" class="erDao" /><!-- autowire="byType" 按照类型进⾏⾃动装配 --><!-- autowire="byName" 按照名称进⾏装配 --><bean class="erService" autowire="byName"><!-- ⼿动构建依赖 --><!-- <property name="userDao" ref="userDao"/> --></bean><bean class="com.zhidi.dao.EmpDao" primary="true"/><bean id="empDao" class="com.zhidi.dao.EmpDao"/><bean class="com.zhidi.service.EmpService"/><bean class="com.zhidi.dao.DeptDao"/><bean class="com.zhidi.service.DeptService"/><bean class="com.zhidi.TestLifeDemo"></bean><!-- 将创建SessionFactory的类交给Spring IOC容器进⾏管理 --><bean class="org.springframework.orm.hibernate4.LocalSessionFactoryBean"><!-- 对Hibernate的基础属性进⾏配置 --><property name="hibernateProperties"><props><prop key="hibernate.connection.driver_class">com.mysql.jdbc.Driver</prop><prop key="hibernate.connection.url">jdbc:mysql://localhost:3306/db_hibernate</prop><prop key="ername">root</prop><prop key="hibernate.connection.password">root</prop><prop key="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</prop><prop key="hibernate.current_session_context_class">thread</prop><prop key="hibernate.show_sql">true</prop><prop key="hibernate.format_sql">true</prop></props></property><!-- 配置扫描实体类所在包,将其配置到SessionFactory中 --><property name="packagesToScan" value="com.zhidi.entity"/></bean></beans>applicationContext.xml配置⽂件的内容步骤总结:1.构建依赖jarSpring必须jar(6个)Hibernate必须jar整合最少还需要导⼊3个jar,spring-jdbc.x.x ,spring-tx.x.x,spring-orm.x.x2.⽬的是要创建SessionFactory将LocalSessionFactoryBean交给Spring IOC容器进⾏管理<bean class="org.springframework.orm.hibernate4.LocalSessionFactoryBean"></bean> 3.对Hibernate进⾏基本属性的配置.hibernate.connection.driver_class.hibernate.connection.url ername.hibernate.connection.password.hibernate.dialect.hibernate.current_session_context_class .hibernate.show_sql.hibernate.format_sql4.扫描实体类所在包packagesToScan5.对实体类进⾏注解配置6.将SessionFactory注⼊到Dao层7.通过SessionFactory创建Session对象,进⾏数据库操作。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
SpringMVC框架搭建说明Spring4.1.4 + hibernate4.3.81、web.xml配置程序运行时从web.xml开始,加载顺序为:context-param -> listener -> filter ->structs (如果使用structs的话)-> servlet如下为web.xml的配置说明<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="/2001/XMLSchema-instance"xmlns="/xml/ns/javaee"xmlns:web="/xml/ns/javaee/web-app_2_5.xsd"xsi:schemaLocation="/xml/ns/javaee/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"><!—-显示项目名称--><display-name>bmymis2</display-name><!-- 指定配置文件位置,contextConfigLocation是ContextLoaderListener中的一个参数,通过该参数在ContextLoaderListener中加载applicationContext-*.xml,并装配ApplicationContext --> <context-param><param-name>contextConfigLocation</param-name><param-value>classpath:applicationContext-*.xml</param-value></context-param><!-- 定义SPRING监听器,启动Web容器时,自动装配ApplicationContext的配置信息--><listener><listener-class>org.springframework.web.context.ContextLoaderListener </listener-class></listener><!—-字符编码过滤器,解决中文乱码问题--><filter><filter-name>encodingFilter</filter-name><filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class><init-param><param-name>encoding</param-name><param-value>UTF-8</param-value></init-param><init-param><param-name>forceEncoding</param-name><param-value>true</param-value></init-param></filter><!—- springmvc配置--><servlet><servlet-name>springServlet</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet </servlet-class><init-param><param-name>contextConfigLocation</param-name><param-value>classpath*:/spring-mvc.xml</param-value></init-param><load-on-startup>1</load-on-startup> //容器启动时首先初始化该servlet </servlet><servlet-mapping><servlet-name>springServlet</servlet-name><url-pattern>/</url-pattern> //表示所有页面都由springmvc处理</servlet-mapping><!—-浏览器输入到项目名,默认打开如下配置页面--><welcome-file-list><welcome-file>/web/login.jsp</welcome-file></welcome-file-list><!—-错误跳转页面--><error-page><error-code>404</error-code><location>/404.html</location></error-page></web-app>2、applicationContext-common.xml配置:<?xml version="1.0" encoding="UTF-8"?><beans xmlns="/schema/beans"xmlns:context="/schema/context"xmlns:xsi="/2001/XMLSchema-instance"xmlns:tx="/schema/tx"xmlns:aop="/schema/aop"xsi:schemaLocation="/schema/beans/schema/beans/spring-beans-4.0.xsd/schema/context/schema/context/spring-context-4.0.xsd/schema/aop/schema/aop/spring-aop-4.0.xsd/schema/tx/schema/tx/spring-tx-4.0.xsd"><!-- 加载资源文件其中包含变量信息,必须在Spring配置文件的最前面加载,即第一个加载--><context:property-placeholder location="classpath:application.properties"/><!—-扫描包路径选项,使用annotation 自动注册bean,并保证@Required,@Autowired的属性被注入,有了该配置,那么<context:annotation-config/>这个配置就可以省略(以下配置包含了<context:annotation-config/>配置)--><context:component-scan base-package="xxx.xxx.xxx"/><!-- 数据源配置,使用应用内的DBCP数据库连接池 --><bean id="dataSource" class="mons.dbcp.BasicDataSource"destroy-method="close"><!-- 定义数据库连接池数据源bean destroy-method="close"的作用是当数据库连接不使用的时候,就把该连接重新放到数据池中,方便下次使用调用--><property name="driverClassName" value="${jdbc.driverClassName}"/><property name="url" value="${jdbc.url}"/><property name="username" value="${ername}"/><property name="password" value="${jdbc.password}"/></bean><!—Hibernate的注解配置 --><bean id="sessionFactory"class="org.springframework.orm.hibernate4.LocalSessionFactoryBean"><property name="dataSource" ref="dataSource"/><property name="hibernateProperties"><props><prop key="hibernate.hbm2ddl.auto">${hibernate.hbm2ddl.auto}</prop><prop key="hibernate.dialect">${hibernate.dialect}</prop><prop key="hibernate.show_sql">${hibernate.show_sql}</prop></props></property><property name="packagesToScan" value="xxx.xxx.xxx.model" /></bean><!-- 配置Hibernate事务管理器 --><bean id="transactionManager"class="org.springframework.orm.hibernate4.HibernateTransactionManager"> <property name="sessionFactory" ref="sessionFactory"/></bean><!-- 配置事务异常封装 --><bean id="persistenceExceptionTranslationPostProcessor"class="org.springframework.dao.annotation.PersistenceExceptionTranslationPost Processor"/><!-- 声明式容器事务管理 ,transaction-manager指定事务管理器为transactionManager --> <tx:advice id="txAdvice" transaction-manager="transactionManager"><tx:attributes><tx:method name="add*" propagation="REQUIRED"/><tx:method name="get*" propagation="REQUIRED"/><tx:method name="*" read-only="true"/></tx:attributes></tx:advice><aop:config expose-proxy="true"><!-- 只对业务逻辑层实施事务 --><aop:pointcut id="txPointcut"expression="execution(*xxx.xxx.xxx.service..*.*(..))"/><!-- Advisor定义,切入点和通知分别为txPointcut、txAdvice --><aop:advisor pointcut-ref="txPointcut" advice-ref="txAdvice"/> </aop:config></beans>3、application.properties配置jdbc.driverClassName=org.postgresql.Driverjdbc.url=jdbc:postgresql://ip:5432/数据库名ername=postgresjdbc.password=123hibernate.dialect=org.hibernate.dialect.PostgreSQLDialecthibernate.show_sql=truehibernate.format_sql=false4、spring-mvc.xml配置<?xml version="1.0"encoding="UTF-8"?><beans xmlns="/schema/beans"xmlns:context="/schema/context"xmlns:mvc="/schema/mvc"xmlns:p="/schema/p"xmlns:xsi="/2001/XMLSchema-instance"xmlns:tx="/schema/tx"xsi:schemaLocation="/schema/beans/schema/beans/spring-beans-3.0.xsd/schema/context/schema/context/spring-context-3.0.xsd/schema/mvc/schema/mvc/spring-mvc-3.0.xsd/schema/tx/schema/tx/spring-tx-4.0.xsd"><!-- 启用spring mvc 注解 --><mvc:annotation-driven><!-- 自动扫描且只扫描@Controller --><context:component-scan base-package="xxx.xxx.xxx "use-default-filters="false"></context:component-scan><!-- 定义JSP文件的位置 --><beanclass="org.springframework.web.servlet.view.InternalResourceView Resolver"><property name="prefix"value="/jsp/"/><property name="suffix"value=".jsp"/></bean><!-- 容器默认的DefaultServletHandler处理所有静态内容与无RequestMapping处理的URL--> <mvc:default-servlet-handler/><!-- 定义无需Controller的url<->view直接映射 --><mvc:view-controller path="/"view-name="login"/></beans>。