Spring配置汇总

mac2024-04-19  39

现在主流的JavaWeb应用几乎都会用到Spring,以下是Spring的配置,以及结合Web的SpringMVC配置的汇总。

jar包的引入与Web项目集成Spring配置文件SpringMVC配置文件集成Mybatis

jar包的引入

使用maven引入(pom.xml)

<properties> <!-- 统一指定版本 --> <spring.version>4.1.7.RELEASE</spring.version> </properties> <!-- 依赖 --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>${spring.version}</version> </dependency> <!-- SpringMVC 需要添加如下依赖 --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>${spring.version}</version> </dependency> <!-- sqlserver 驱动 --> <dependency> <groupId>com.microsoft.sqlserver</groupId> <artifactId>sqljdbc4</artifactId> <version>4.0</version> </dependency> <!-- c3p0 连接池支持--> <dependency> <groupId>com.mchange</groupId> <artifactId>c3p0</artifactId> <version>0.9.5.2</version> </dependency>

与Web项目集成

配置在web.xml文件中

<!-- Spring配置 --> <context-param> <param-name>contextConfigLocation</param-name> <!-- 指定spring配置文件(classpath*: 包括jar包中配置) --> <param-value>classpath*:spring/spring-*.xml</param-value> </context-param> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <!-- SpringMVC配置 --> <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/springmvc.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配置文件

Spring配置文件路径:classpath:spring/spring-context.xml

<!-- 指定扫描的包 --> <context:component-scan base-package="com.menng.service.impl"/> <!--(根据需要配置)以下是连接池配置,使用c3p0--> <!-- 引入数据库配置 --> <context:property-placeholder location="classpath:jdbc.properties"/> <!-- 数据源 --> <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close"> <property name="driverClass" value="${jdbc.sqlserver.driver}"/> <property name="jdbcUrl" value="${jdbc.url}"/> <property name="user" value="${jdbc.user}"/> <property name="password" value="${jdbc.password}"/> <!-- 连接池初始化连接数 --> <property name="initialPoolSize" value="${jdbc.initialPoolSize}" /> <!-- 连接池中保留的最小连接数。--> <property name="minPoolSize" value="${jdbc.minPoolSize}" /> <!-- 连接池中保留的最大连接数。Default: 15 --> <property name="maxPoolSize" value="${jdbc.maxPoolSize}" /> <!-- 连接被断开的时间,Default:0 即永不过期 --> <property name="maxIdleTime" value="${jdbc.maxIdleTime}" /> <!-- 当连接池中的连接耗尽的时候c3p0一次同时获取的连接数。Default: 3 --> <property name="acquireIncrement" value="${jdbc.acquireIncrement}" /> <!-- 最大statements数量 --> <property name="maxStatements" value="${jdbc.maxStatements}" /> <!-- 定义在从数据库获取新连接失败后重复尝试的次数。Default: 30--> <property name="acquireRetryAttempts" value="${jdbc.acquireRetryAttempts}" /> <!-- 每120秒检查所有连接池中的空闲连接。Default: 0--> <property name="idleConnectionTestPeriod" value="${jdbc.idleConnectionTestPeriod}" /> <property name="breakAfterAcquireFailure" value="true" /> </bean>

jdbc配置文件:classpath:jdbc.properties

jdbc.sqlserver.driver=com.microsoft.sqlserver.jdbc.SQLServerDriver jdbc.url=jdbc:sqlserver://127.0.0.1:1433;DatabaseName=test jdbc.user=root jdbc.password=123456 jdbc.initialPoolSize=20 jdbc.minPoolSize=20 jdbc.maxPoolSize=120 jdbc.maxIdleTime=600 jdbc.acquireIncrement=10 jdbc.maxStatements=20 jdbc.acquireRetryAttempts=3 jdbc.idleConnectionTestPeriod=120

SpringMVC配置文件

SpringMVC配置文件路径:classpath:spring/springmvc.xml

<!-- 注解驱动 --> <mvc:annotation-driven/> <!-- 指定扫描的包 --> <context:component-scan base-package="com.menng.controller"/> <!-- (根据需要配置)静态资源处理 --> <mvc:resources location="/js/" mapping="/js/**"/> <mvc:resources location="/images/" mapping="/images/**"/> <mvc:resources location="/css/" mapping="/css/**"/> <!-- (根据需要配置)使用容器默认servlet处理没有映射的资源(配置了这个就不用配置 静态资源处理了) --> <mvc:default-servlet-handler/>

集成Mybatis

在classpath:spring/spring-context.xml新增如下配置 <!-- spring与MyBatis整合 --> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource"/> <property name="configLocation" value="classpath:mybatis/mybatis-config.xml"/> </bean> <!-- 配置扫描包 --> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/> <!-- xml与接口文件在同一目录下,注意:maven打包时把xml mapper文件打包到war包中 --> <property name="basePackage" value="com.menng.mapper"/> </bean> 在pom.xml新增如下依赖以及对xml mapper文件的过滤 <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version>${spring-version}</version> </dependency> <!-- myBatis --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.4.1</version> </dependency> <!-- myBatis-spring 集成--> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis-spring</artifactId> <version>1.3.0</version> </dependency> <build> <resources> <!-- 用于mybatis配置文件打包到war包中 --> <resource> <directory>src/main/java</directory> <includes> <include>**/*.xml</include> </includes> <!-- 是否替换资源中的属性--> <filtering>false</filtering> </resource> <resource> <directory>src/main/resources</directory> </resource> </resources> </build> mybatis的配置(根据需要配置,可选),文件路径为:classpath:mybatis/mybatis-config.xml <settings> <!-- 指定日志为log4j2 --> <setting name="logImpl" value="LOG4J2"/> <!-- 查询时,关闭关联对象即时加载以提高性能 --> <setting name="lazyLoadingEnabled" value="true"/> <!-- 对于未知的SQL查询,允许返回不同的结果集以达到通用的效果 --> <setting name="multipleResultSetsEnabled" value="true"/> <!-- 允许使用列标签代替列名 --> <setting name="useColumnLabel" value="true"/> <!-- 不允许使用自定义的主键值(比如由程序生成的UUID 32位编码作为键值),数据表的PK生成策略将被覆盖 --> <setting name="useGeneratedKeys" value="false"/> <!-- 给予被嵌套的resultMap以字段-属性的映射支持 FULL,PARTIAL --> <setting name="autoMappingBehavior" value="PARTIAL"/> </settings>
最新回复(0)