SpringMVC、Spring、Hibernate整合基础配置

来源:互联网 发布:军工行业大数据 编辑:程序博客网 时间:2024/06/04 23:31

web.xml

<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">  <display-name>tax</display-name>  <servlet-mapping>    <servlet-name>default</servlet-name>    <url-pattern>*.jpg</url-pattern>  </servlet-mapping>  <servlet-mapping>    <servlet-name>default</servlet-name>    <url-pattern>*.gif</url-pattern>  </servlet-mapping>  <servlet-mapping>    <servlet-name>default</servlet-name>    <url-pattern>*.png</url-pattern>  </servlet-mapping>  <servlet-mapping>    <servlet-name>default</servlet-name>    <url-pattern>*.js</url-pattern>  </servlet-mapping>  <servlet-mapping>    <servlet-name>default</servlet-name>    <url-pattern>*.css</url-pattern>  </servlet-mapping>  <context-param>    <param-name>contextConfigLocation</param-name>    <param-value>classpath*:/spring-context*.xml</param-value>  </context-param>  <context-param>    <param-name>spring.profiles.default</param-name>    <param-value>production</param-value>  </context-param>  <listener>    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>  </listener>  <filter>    <filter-name>HiddenHttpMethodFilter</filter-name>    <filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>  </filter>  <filter-mapping>    <filter-name>HiddenHttpMethodFilter</filter-name>    <servlet-name>dispatcher</servlet-name>  </filter-mapping>  <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>  <filter-mapping>    <filter-name>encodingFilter</filter-name>    <url-pattern>/*</url-pattern>  </filter-mapping>  <filter>    <filter-name>openSessionInViewFilter</filter-name>    <filter-class>org.springframework.orm.hibernate4.support.OpenSessionInViewFilter</filter-class>  </filter>  <filter-mapping>    <filter-name>openSessionInViewFilter</filter-name>    <url-pattern>/*</url-pattern>  </filter-mapping>  <filter>    <filter-name>shiroFilter</filter-name>    <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>    <init-param>      <param-name>targetFilterLifecycle</param-name>      <param-value>true</param-value>    </init-param>  </filter>  <filter-mapping>    <filter-name>shiroFilter</filter-name>    <url-pattern>/*</url-pattern>  </filter-mapping>  <filter>    <filter-name>sitemeshFilter</filter-name>    <filter-class>com.opensymphony.sitemesh.webapp.SiteMeshFilter</filter-class>  </filter>  <filter-mapping>    <filter-name>sitemeshFilter</filter-name>    <url-pattern>/*</url-pattern>  </filter-mapping>  <filter>    <filter-name>DruidWebStatFilter</filter-name>    <filter-class>com.alibaba.druid.support.http.WebStatFilter</filter-class>    <init-param>      <param-name>exclusions</param-name>      <param-value>*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*</param-value>    </init-param>  </filter>  <filter-mapping>    <filter-name>DruidWebStatFilter</filter-name>    <url-pattern>/*</url-pattern>  </filter-mapping>  <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-mapping>    <servlet-name>springServlet</servlet-name>    <url-pattern>/</url-pattern>  </servlet-mapping>  <servlet>    <servlet-name>DruidStatView</servlet-name>    <servlet-class>com.alibaba.druid.support.http.StatViewServlet</servlet-class>  </servlet>  <servlet-mapping>    <servlet-name>DruidStatView</servlet-name>    <url-pattern>/druid/*</url-pattern>  </servlet-mapping>  <servlet>    <servlet-name>DubboDruidView</servlet-name>    <servlet-class>com.newboss.monitor.servlet.DubboDruidViewServlet</servlet-class>  </servlet>  <servlet-mapping>    <servlet-name>DubboDruidView</servlet-name>    <url-pattern>/dubbo/*</url-pattern>  </servlet-mapping>  <servlet>    <servlet-name>ValidateCodeServlet</servlet-name>    <servlet-class>com.thinkgem.jeesite.common.servlet.ValidateCodeServlet</servlet-class>  </servlet>  <servlet-mapping>    <servlet-name>ValidateCodeServlet</servlet-name>    <url-pattern>/servlet/validateCodeServlet</url-pattern>  </servlet-mapping>  <session-config>    <session-timeout>120</session-timeout>  </session-config>  <error-page>    <exception-type>java.lang.Throwable</exception-type>    <location>/WEB-INF/views/error/500.jsp</location>  </error-page>  <error-page>    <error-code>500</error-code>    <location>/WEB-INF/views/error/500.jsp</location>  </error-page>  <error-page>    <error-code>404</error-code>    <location>/WEB-INF/views/error/404.jsp</location>  </error-page></web-app>

spring-mvc.xml

<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"xmlns:mvc="http://www.springframework.org/schema/mvc"xmlns:task="http://www.springframework.org/schema/task"xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsdhttp://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsdhttp://www.springframework.org/schema/task  http://www.springframework.org/schema/task/spring-task-3.1.xsd "><description>Spring MVC Configuration</description><!-- 加载配置属性文件 --><context:property-placeholderignore-unresolvable="true" location="classpath*:/tax.properties" /><!-- 配置定时器 --><task:annotation-driven/>  <!-- 使用Annotation自动注册Bean,只扫描@Controller --><context:component-scan base-package="com.thinkgem.jeesite,com.wonders"use-default-filters="false"><!-- base-package 如果多个,用“,”分隔 --><context:include-filter type="annotation"expression="org.springframework.stereotype.Controller" /></context:component-scan><!-- 默认的注解映射的支持,org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping --><mvc:annotation-drivencontent-negotiation-manager="contentNegotiationManager"><mvc:message-converters register-defaults="true"><!-- 将StringHttpMessageConverter的默认编码设为UTF-8 --><bean class="org.springframework.http.converter.StringHttpMessageConverter"><constructor-arg value="UTF-8" /></bean><!-- 将Jackson2HttpMessageConverter的默认格式化输出为true --><beanclass="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"><property name="prettyPrint" value="true" /><property name="objectMapper"><bean class="com.thinkgem.jeesite.common.mapper.JsonMapper"></bean></property><property name="supportedMediaTypes" value="application/json"></property></bean><!-- 使用XML格式输出数据 --><beanclass="org.springframework.http.converter.xml.MarshallingHttpMessageConverter"><constructor-arg><bean class="org.springframework.oxm.xstream.XStreamMarshaller"><property name="streamDriver"><bean class="com.thoughtworks.xstream.io.xml.StaxDriver" /></property><property name="annotatedClasses"><list><value>com.thinkgem.jeesite.common.persistence.BaseEntity</value></list></property></bean></constructor-arg><property name="supportedMediaTypes" value="application/xml"></property></bean></mvc:message-converters><mvc:argument-resolvers><beanclass="com.thinkgem.jeesite.common.web.SecureModelAttributeMethodArgumentResolver"><constructor-arg value="false" /></bean></mvc:argument-resolvers></mvc:annotation-driven><!-- REST中根据URL后缀自动判定Content-Type及相应的View --><bean id="contentNegotiationManager"class="org.springframework.web.accept.ContentNegotiationManagerFactoryBean"><property name="mediaTypes"><map><entry key="xml" value="application/xml" /><entry key="json" value="application/json" /></map></property><property name="ignoreAcceptHeader" value="true" /><property name="favorPathExtension" value="true" /></bean><!-- 视图文件解析配置 --><beanclass="org.springframework.web.servlet.view.InternalResourceViewResolver"><property name="prefix" value="${web.view.prefix}" /><property name="suffix" value="${web.view.suffix}" /></bean><!-- 对静态资源文件的访问, 将无法mapping到Controller的path交给default servlet handler处理 --><mvc:default-servlet-handler /><!-- 定义无Controller的path<->view直接映射 --><mvc:view-controller path="/"view-name="redirect:${web.view.index}" /><!-- 拦截器配置 --><mvc:interceptors><bean class="com.thinkgem.jeesite.modules.sys.interceptor.LogInterceptor" /></mvc:interceptors><!-- 支持Shiro对Controller的方法级AOP安全控制 begin --><beanclass="org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator"depends-on="lifecycleBeanPostProcessor"><property name="proxyTargetClass" value="true" /></bean><beanclass="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver"><property name="exceptionMappings"><props><prop key="org.apache.shiro.authz.UnauthorizedException">error/403</prop></props></property></bean><!-- Shiro end --><!-- 上传文件拦截,设置最大上传文件大小 10M=10*1024*1024(B)=10485760 bytes --><!-- <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <property name="maxUploadSize" value="${web.maxUploadSize}" /> </bean> --><bean id="multipartResolver"class="org.springframework.web.multipart.commons.CommonsMultipartResolver"><!-- set the max upload size100MB --><property name="defaultEncoding" value="UTF-8" /><property name="maxUploadSize"><value>104857600</value></property><property name="maxInMemorySize"><value>4096</value></property></bean><!-- 设置随Spring启动的线程池 --><bean id="threadStart" class="com.wonders.tax.threadPool.start.ThreadPool"init-method="start" /></beans>

spring-context.xml

<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"xmlns:jdbc="http://www.springframework.org/schema/jdbc" xmlns:jee="http://www.springframework.org/schema/jee"xmlns:tx="http://www.springframework.org/schema/tx" xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsdhttp://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-3.2.xsdhttp://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-3.2.xsdhttp://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.2.xsdhttp://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd"default-lazy-init="true"><description>Spring Configuration</description><!-- 加载配置属性文件 --><context:property-placeholderignore-unresolvable="true" location="classpath*:/tax.properties" /><!-- 使用Annotation自动注册Bean,解决事物失效问题:在主容器中不扫描@Controller注解,在SpringMvc中只扫描@Controller注解。 --><context:component-scan base-package="com.thinkgem.jeesite,com.wonders"><!-- base-package 如果多个,用“,”分隔 --><context:exclude-filter type="annotation"expression="org.springframework.stereotype.Controller" /></context:component-scan><!-- 定义Hibernate Session工厂 --><bean id="sessionFactory"class="org.springframework.orm.hibernate4.LocalSessionFactoryBean"><property name="dataSource" ref="dataSource" /><property name="packagesToScan" value="com.thinkgem.jeesite,com.wonders" /><!-- 如果多个,用“,”分隔 --><property name="hibernateProperties"><props><prop key="hibernate.cache.region.factory_class">org.hibernate.cache.ehcache.EhCacheRegionFactory</prop><!-- <prop key="net.sf.ehcache.configurationResourceName">${hibernate.ehcache.configFile}</prop> <prop key="hibernate.cache.use_second_level_cache">true</prop> <prop key="hibernate.cache.use_query_cache">true</prop> --><prop key="hibernate.search.default.directory_provider">filesystem</prop><prop key="hibernate.search.default.indexBase">${hibernate.search.default.indexBase}</prop><prop key="hibernate.show_sql">${hibernate.show_sql}</prop></props></property><property name="namingStrategy"><bean class="org.hibernate.cfg.ImprovedNamingStrategy" /></property></bean><!-- 定义事务 --><bean id="transactionManager"class="org.springframework.orm.hibernate4.HibernateTransactionManager"><property name="sessionFactory" ref="sessionFactory" /></bean><bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate"><property name="sessionFactory" ref="sessionFactory" /></bean><bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate"><property name="dataSource" ref="dataSource"></property></bean><!-- 配置 Annotation 驱动,扫描@Transactional注解的类定义事务 --><tx:annotation-driven transaction-manager="transactionManager"proxy-target-class="true" /><!-- 配置 JSR303 Bean Validator 定义 --><bean id="validator"class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean" /><!-- 缓存配置 --><bean id="cacheManager"class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean"><property name="configLocation" value="classpath:${ehcache.configFile}" /></bean><!-- Production 环境 --><beans profile="production"><!-- 数据源配置, 使用 BoneCP 数据库连接池 --><bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"init-method="init" destroy-method="close"><!-- 数据源驱动类可不写,Druid默认会自动根据URL识别DriverClass --><property name="driverClassName" value="${jdbc.driver}" /><!-- 基本属性 url、user、password --><property name="url" value="${jdbc.url}" /><property name="username" value="${jdbc.username}" /><property name="password" value="${jdbc.password}" /><!-- 配置初始化大小、最小、最大 --><property name="initialSize" value="${jdbc.pool.minIdle}" /><property name="minIdle" value="${jdbc.pool.minIdle}" /><property name="maxActive" value="${jdbc.pool.maxActive}" /><!-- 配置获取连接等待超时的时间 --><property name="maxWait" value="30000" /><!-- 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 --><property name="timeBetweenEvictionRunsMillis" value="30000" /><!-- 配置一个连接在池中最小生存的时间,单位是毫秒 --><property name="minEvictableIdleTimeMillis" value="90000" /><property name="validationQuery" value="SELECT 'x'" /><property name="testWhileIdle" value="true" /><property name="testOnBorrow" value="false" /><property name="testOnReturn" value="false" /><!-- 打开PSCache,并且指定每个连接上PSCache的大小(Oracle使用) <property name="poolPreparedStatements" value="true" /> <property name="maxPoolPreparedStatementPerConnectionSize" value="20" /> --><!-- 配置监控统计拦截的filters --><property name="filters" value="stat" /></bean><!-- 数据源配置, 使用应用服务器的数据库连接池 <jee:jndi-lookup id="dataSource" jndi-name="java:comp/env/jdbc/jeesite" /> --><!-- 数据源配置, 不使用连接池 <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName" value="${jdbc.driver}" /> <property name="url" value="${jdbc.url}" /> <property name="username" value="${jdbc.username}"/> <property name="password" value="${jdbc.password}"/> </bean> --></beans></beans>




0 0