`
曹悦2014
  • 浏览: 5380 次
  • 性别: Icon_minigender_1
  • 来自: 哈尔滨
社区版块
存档分类
最新评论

01-项目的建立以及配置文件的修改

阅读更多
     此篇博文仅代表个人观点,由于本人经验尚浅,如有错漏之处请私信指正,谢谢
先期准备工作:
   1:下载spring-framework-3.x.x.zip,以及hibernate-4.2.x.zip,并下载spring相关依赖包。
   2:创建web工程,将相关的jar导入到lib下
   3:创建源文件夹resource,将相关配置文件放到该文件夹下,以便统一管理
   4:打开web.xml文件,编辑
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" 
	xmlns="http://java.sun.com/xml/ns/javaee" 
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
	http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
  	<display-name>Demo</display-name>	
   	<!-- log4j 配置  开始 -->
    <context-param>
        <param-name>log4jConfigLocation</param-name>
        <param-value>/WEB-INF/classes/log4j.properties</param-value>
    </context-param>
    <context-param>
        <param-name>log4jRefreshInterval</param-name>
        <param-value>600000</param-value>
    </context-param>

    <listener>
        <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
    </listener>
    <!-- log4j 配置  结束 -->

    <!-- 设置servlet编码开始 -->
     
    <filter>
        <filter-name>Set Character Encoding</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>Set Character Encoding</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
    
    <!-- 设置servlet编码结束 -->
    
     <!-- Spring配置文件开始  -->    
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>
            classpath:spring.xml
        </param-value>
    </context-param>

    <listener>
        <listener-class>
            org.springframework.web.context.ContextLoaderListener
        </listener-class>
    </listener>
    <!-- Spring配置文件结束 -->
    
     <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:spring-mvc.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>SpringMVC</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>
  
	<!-- 配置静态资源不经过spring -->
	<servlet-mapping>
		<servlet-name>default</servlet-name>
		<url-pattern>*.css</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>*.json</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>*.jpg</url-pattern>
	</servlet-mapping>
	<servlet-mapping>
		<servlet-name>default</servlet-name>
		<url-pattern>*.ico</url-pattern>
	</servlet-mapping>
	<servlet-mapping>
		<servlet-name>default</servlet-name>
		<url-pattern>*.doc</url-pattern>
	</servlet-mapping>
	<servlet-mapping>
		<servlet-name>default</servlet-name>
		<url-pattern>*.xls</url-pattern>
	</servlet-mapping>
	<servlet-mapping>
		<servlet-name>default</servlet-name>
		<url-pattern>*.docx</url-pattern>
	</servlet-mapping>
	<servlet-mapping>
		<servlet-name>default</servlet-name>
		<url-pattern>*.xlsx</url-pattern>
	</servlet-mapping>
	<servlet-mapping>
		<servlet-name>default</servlet-name>
		<url-pattern>*.txt</url-pattern>
	</servlet-mapping>
	<servlet-mapping>
		<servlet-name>default</servlet-name>
		<url-pattern>*.swf</url-pattern>
	</servlet-mapping>
  

	<!-- 配置session超时时间,单位分钟 -->
	<session-config>
		<session-timeout>15</session-timeout>
	</session-config>
    <!-- 找不到页错误转向 -->
	<error-page>
		<error-code>404</error-code>
		<location>/error/404.jsp</location>
	</error-page>
	<!-- 系统内部错误转向 -->
	<error-page>
		<error-code>500</error-code>
		<location>/error/500.jsp</location>
	</error-page>
    
    
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
</web-app>

    5:将spring提供的配置文件applicationContext.xml改名为spring.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:aop="http://www.springframework.org/schema/aop"
       xmlns:tx="http://www.springframework.org/schema/tx"
       xmlns:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="
       http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
       http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.1.xsd
       http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsd
       http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd
       ">

    <!-- 扫描注解Bean -->
 
   <!-- 自动扫描dao和service包(自动注入) -->
	<context:component-scan base-package="cn.cy.dao,cn.cy.service" />

    <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
        <property name="locations">
            <list>
                <value>classpath:resources.properties</value>
            </list>
        </property>
    </bean>

    <!-- 国际化的消息资源文件 -->
    <bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
        <property name="basenames">
            <list>
                <!-- 在web环境中一定要定位到classpath 否则默认到当前web应用下找  -->
                <value>classpath:messages</value>
            </list>
        </property>
        <property name="defaultEncoding" value="UTF-8"/>
        <property name="cacheSeconds" value="60"/>
    </bean>
    

  	<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
  		<property name="driverClassName" value="oracle.jdbc.driver.OracleDriver" />
		<property name="url" value="jdbc:oracle:thin:@127.0.0.1:1521:orcl" />
		<property name="username" value="demo" />
		<property name="password" value="demo" />
	</bean>

  	<bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean" >
    	<property name="dataSource" ref="dataSource"/>
    	<property name="packagesToScan">
			<list>
				<value>cn.cy</value>
			</list>
		</property>
        <property name="hibernateProperties">
            <props>
                 <prop key="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</prop>
                <prop key="hibernate.show_sql">true</prop>
                <prop key="hibernate.format_sql">true</prop>
                <prop key="hibernate.hbm2ddl.auto">update</prop>
                <prop key="javax.persistence.validation.mode">none</prop>
                <prop key="hibernate.current_session_context_class">org.springframework.orm.hibernate4.SpringSessionContext</prop>
            </props>
        </property>
  	</bean>


    <!-- 开启AOP监听 只对当前配置文件有效 -->
	<aop:aspectj-autoproxy expose-proxy="true"/>
	
	<!-- 开启注解事务 只对当前配置文件有效 -->
  	<tx:annotation-driven transaction-manager="txManager"/>

    <bean id="txManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager">
        <property name="sessionFactory" ref="sessionFactory"/>
    </bean>

    <tx:advice id="txAdvice" transaction-manager="txManager">
        <tx:attributes>
         	<tx:method name="add*" propagation="REQUIRED" />
			<tx:method name="append*" propagation="REQUIRED" />
			<tx:method name="save*" propagation="REQUIRED" />
			<tx:method name="update*" propagation="REQUIRED" />
			<tx:method name="modify*" propagation="REQUIRED" />
			<tx:method name="edit*" propagation="REQUIRED" />
			<tx:method name="delete*" propagation="REQUIRED" />
			<tx:method name="remove*" propagation="REQUIRED" />
			<tx:method name="init" propagation="REQUIRED" />
			<tx:method name="delAndInit" propagation="REQUIRED" />

			<tx:method name="get*" propagation="REQUIRED" read-only="true" />
			<tx:method name="find*" propagation="REQUIRED" read-only="true" />
			<tx:method name="load*" propagation="REQUIRED" read-only="true" />
			<tx:method name="search*" propagation="REQUIRED" read-only="true" />
			<tx:method name="datagrid*" propagation="REQUIRED" read-only="true" />

			<tx:method name="*" propagation="REQUIRED" />
        </tx:attributes>
    </tx:advice>
    <aop:config expose-proxy="true">
        <!-- 只对业务逻辑层实施事务 -->
        <aop:pointcut id="txPointcut" expression="execution(* cn.cy.service.*.*(..))" />
        <aop:advisor advice-ref="txAdvice" pointcut-ref="txPointcut"/>
    </aop:config>

</beans>
 
    6:更改spring-servlet.xml文件名改为spring-mvc.xml,提供本人项目中的仅供参考
<beans xmlns="http://www.springframework.org/schema/beans" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:p="http://www.springframework.org/schema/p" 
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:util="http://www.springframework.org/schema/util"
    xmlns:mvc="http://www.springframework.org/schema/mvc"
    xsi:schemaLocation="
        http://www.springframework.org/schema/util
        http://www.springframework.org/schema/util/spring-util-3.1.xsd
        http://www.springframework.org/schema/beans 
        http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
        http://www.springframework.org/schema/context 
        http://www.springframework.org/schema/context/spring-context-3.1.xsd
        http://www.springframework.org/schema/mvc
       http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd" >
    
   
    <!-- 
    <mvc:annotation-driven/>
     -->
    <!-- 标明用annotation注解方式来进行开发,注册json转换的bean,将@RequestBody输出的JSON格式响应格式更改为text/html,防止IE弹出下载   -->
    <mvc:annotation-driven ignoreDefaultModelOnRedirect="true"  conversion-service="conversion-service" validator="validator">
        <mvc:message-converters register-defaults="false">
            <bean class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter">
                <property name="supportedMediaTypes" value="text/html;charset=UTF-8" />
           	</bean>
            <bean class="org.springframework.http.converter.ByteArrayHttpMessageConverter" /> 
            <bean class="org.springframework.http.converter.StringHttpMessageConverter">
                <property name="supportedMediaTypes" value="text/plain;charset=UTF-8" />
            </bean>
        </mvc:message-converters>
        
    </mvc:annotation-driven>

    <bean id="validator" class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean">
        <property name="providerClass"  value="org.hibernate.validator.HibernateValidator"/>
        <!-- 如果不加默认到 使用classpath下的 ValidationMessages.properties -->
        <property name="validationMessageSource" ref="messageSource"/>
    </bean>
   
    <bean id="conversion-service" class="org.springframework.format.support.FormattingConversionServiceFactoryBean" /> 
		
    <!-- 开启controller注解支持 -->
    <!-- 注:如果base-package=cn.cy 则注解事务不起作用 TODO 读源码 -->
    <context:component-scan base-package="cn.cy.controller">
		<context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
    </context:component-scan>


   
    <mvc:view-controller path="/" view-name="forward:/index"/>
   
         
  	<!-- 对模型视图名称的解析,即在模型视图名称添加前后缀 -->
	<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" p:prefix="/" p:suffix=".jsp" />
      
    
    <!-- 文件上传相关 -->
    <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
        <!--one of the properties available;the maximum file size in bytes-->
        <property name="maxUploadSize" value="100000"/>
    </bean>
     
    <!-- 控制器异常处理 -->
    <bean id="exceptionResolver" class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
        <property name="exceptionMappings">
              <props>
                  <prop key="java.lang.Exception">
                        error_all
                </prop>
            </props>
        </property>
    </bean>

</beans>


    进行如上操作后,即可进行springmvc+hibernate的开发了,开发示例请参考我的下一篇文章
0
1
分享到:
评论

相关推荐

    Mybatis-generator 生成Mybatis配置文件

    【Mybatis-generator 生成Mybatis配置文件】 Mybatis Generator 是一款强大的工具,它能够自动根据数据库表结构生成MyBatis的映射文件、实体类以及Mapper接口,极大地提高了开发效率。在项目开发过程中,手动编写...

    淘淘商城04-项目配置文件

    在IT行业中,项目配置文件是任何应用程序的基础,它们定义了应用如何运行、连接到外部服务以及处理各种系统级别的设置。"淘淘商城04-项目配置文件"是一个针对淘淘商城项目的配置集合,包含了诸如Spring框架、Maven的...

    JAVA项目数据库连接XML配置文件.docx

    在 Java 项目中,数据库连接的配置是一个非常重要的步骤,为了方便用户配置数据库,使用 XML 配置文件可以灵活地修改数据连接。本文将详细介绍如何使用 XML 配置文件来连接数据库。 XML 配置文件 XML 配置文件是...

    android-8.0.0_r1配置文件.zip

    其次,`android.ipr`文件是Android Studio的项目配置文件,它包含了整个项目的配置信息,如项目结构、版本控制设置、外部库引用等。通过这个文件,Android Studio可以了解项目的整体布局,包括源码目录、测试目录、...

    CNAS-CL01-A003:2018《检测和校准实验室能力认可准则在电气检测领域的应用说明》.pdf

    - **文件编号调整**:从CNAS-CL11:2015更改为CNAS-CL01-A003。 - **章节编排与内容修订**:依据最新的CNAS-CL01:2018标准进行结构调整和编辑性修订,以确保与最新标准的一致性。 - **新增附录B**:基于...

    vscode完整项目以及c++配置文件

    这可以通过修改"C/C++"扩展的配置文件`.vscode/c_cpp_properties.json`来实现。在此文件中,指定`"compilerPath"`为你系统中的C++编译器路径,例如`"/usr/bin/g++"`(Linux)或`"C:\\MinGW\\bin\\g++.exe"`(Windows...

    nexus-3.33.1-01-unix.tar.gz

    “Nexus-3.33.1-01”是主程序目录,包含Nexus的可执行文件和其他配置文件。而“sonatype-work”目录则是Nexus运行时的工作目录,包括日志、存储库内容以及配置备份等数据。 在Linux服务器上安装Nexus 3.33.1-01的...

    CNAS-CL01-A010:2018《检测和校准实验室能力认可准则在纺织检测领域的应用说明》.pdf

    修订内容主要包括章节编号的更新以及部分条款的修改,以确保与最新准则的一致性和协调性。 #### 三、范围 本文件适用于CNAS对纺织检测领域实验室的认可活动。特别指出的是,涉及微生物检测的项目还需满足...

    JDBC通过配置文件连接数据库

    **JDBC通过配置文件连接数据库** ...通过这种方式,我们可以方便地在不修改代码的情况下更改数据库连接信息,提高了项目的可维护性。同时,对于大型项目,配置文件也使得数据库连接的管理变得更加有序和规范。

    JAVA连接字符串到配置文件

    在Java开发中,将连接字符串存放在配置文件中是一种常见的最佳实践,这有助于提升代码的可维护性和灵活性。连接字符串通常用于数据库连接、API调用或者其他需要网络通信的服务。本篇将详细介绍如何在Java中实现这一...

    文件5-项目运行机制汇报提纲.doc

    【文件5-项目运行机制汇报提纲.doc】的文档主要阐述了工程项目管理中一套完整的运行机制,旨在提升项目管理能力和效率。这套机制包含了20项关键制度,涵盖了人员配置、决策沟通、设计优化、图纸审核、施工方案管理、...

    软件开发与项目管理-1期 配置管理控制程序.pdf

    该控制程序适用于所有的软件开发项目,无论大小,旨在指导项目经理、配置管理人员、开发人员以及质量保证(SQA)团队进行有效的配置管理工作。 3. **职责** - **项目经理**:负责整个项目的配置管理,确保团队遵循...

    source insight的2种配置文件

    本篇文章将详细探讨Source Insight中的两种主要配置文件,以及它们的作用和配置方法。 首先,我们来了解第一种配置文件——`.ci`文件。`.ci`文件是Source Insight的项目配置文件,它包含了项目的所有设置,如源代码...

    软件开发项目管理:10-软件项目配置管理计划.pdf

    配置管理环境建立是软件配置管理计划的重要组成部分,包括建立配置管理库、开发库、受控库和产品库等。配置管理库是用来存储所有基线配置项及相关文件的等内容的系统,是在软件产品的整个生存期中建立和维护软件产品...

    fatfs移植和使用(在SPI-FLASH上建立文件系统)

    修改`ffconf.h`配置文件,启用SPI驱动,禁用其他不必要的驱动。 - 实现SPI驱动:编写SPI-FLASH的驱动程序,包括初始化、读写操作等函数。这些函数需要符合FATFS规定的接口,如`read sectors`、`write sectors`、`...

    ios-项目框架搭建.zip

    - 在新项目的配置阶段,需要设置项目名、组织标识符、产品名称以及选择目标设备(iPhone或iPad)。此外,选择Swift或Objective-C作为主要编程语言,根据个人喜好和项目需求。 3. **项目目录结构**: - 一个标准的...

    XML配置文件连接Oracle数据库

    XML(Extensible Markup Language)是一种用于标记数据的语言,它被广泛应用于配置文件中,因为它的结构清晰、可读性强,适合存储和传输结构化的信息。在本场景中,我们将探讨如何使用XML配置文件来连接Oracle数据库...

    nexus-3.37.1-01-win64.zip

    2. 修改 "sonatype-work" 目录下的配置文件,如 `conf/nexus.properties`,设置服务器地址、端口等。 3. 配置系统环境变量,如 `JAVA_HOME`,确保指向有效的 Java 运行环境。 4. 启动 Nexus 服务,可以使用提供的...

    通信公司客户支撑系统-PMO-配置管理办法模版.docx

    例如,可以采用“部门代码-项目代码-子系统代码”的格式,如“IT-01-CRM”。 ### 结语 通过对配置管理的详细介绍,我们可以看到,良好的配置管理不仅能够提高项目的效率,还能够降低出错率,确保项目的顺利进行。...

Global site tag (gtag.js) - Google Analytics