spring在整合框架中常用配置的bean
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spring在整合框架中常用配置的bean相关的知识,希望对你有一定的参考价值。
1 数据源
1.1spring默认的数据源DriverManagerDatasource
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName" value="com.mysql.jdbc.Driver"></property> <property name="url" value="jdbc:mysql:///spring"></property> <property name="username" value="lsn"></property> <property name="password" value="123"></property> </bean>
1.2 dbcp数据源
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"> <property name="driverClassName" value="${jdbc.driverClass}"></property> <property name="url" value="${jdbc.url}"></property> <property name="username" value="${jdbc.userName}"></property> <property name="password" value="${jdbc.password}"></property> </bean>
1.3 c3p0数据源
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"> <property name="driverClass" value="${jdbc.driverClass}"></property> <property name="jdbcUrl" value="${jdbc.url}"></property> <property name="user" value="${jdbc.userName}"></property> <property name="password" value="${jdbc.password}"></property> </bean>
2 spring声明式事务管理
事务管理器PlatformTransactionManager最常用的两个实现类:
01 DataSourceTransactionManager
02 HibernateTransactionManager
首先配置事务管理器:
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource"></property> </bean>
2.1 代理工厂管理事务
<bean id="serviceProxy" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"> <property name="transactionManager" ref="transactionManager"/><!-- 绑定事务管理器 --> <property name="target" ref="stockService"/><!-- 代理目标对象 --> <property name="transactionAttributes"><!-- 事务属性,参数为Properties --> <props><!-- 在指定的事务切入点上 -:事务回滚;+:事务提交 --> <prop key="open*"> ISOLATION_DEFAULT, PROPAGATION_REQUIRED</prop> <prop key="buyStock">ISOLATION_DEFAULT, PROPAGATION_REQUIRED,-UserException</prop> </props> </property> </bean>
2.2AspectJ管理事务
<!-- 02 使用AspectJ管理事务,需要两个jar包,同样需要绑定事务管理器,还要指定切入点 --> <tx:advice id="myAdvice" transaction-manager="transactionManager"> <tx:attributes> <tx:method name="open*" isolation="DEFAULT" propagation="REQUIRED"/> <tx:method name="buyStock" isolation="DEFAULT" propagation="REQUIRED" rollback-for="UserException"/> </tx:attributes> </tx:advice> <!-- 指定切入点 --> <aop:config> <aop:pointcut expression="execution(* *..service.*.*(..))" id="myPoint"/> <aop:advisor advice-ref="myAdvice" pointcut-ref="myPoint"/> </aop:config>
2.3 使用注解管理事务
<tx:annotation-driven transaction-manager="transactionManager"/>
3 整合hibernate 配置,创建sessionFactory
<!-- spring代替了hibernate原来的Configuration类,读取配置文件 --> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <!-- <property name="configLocation" value="classpath:hibernate.cfg.xml"></property> 不再读取配置文件,还是用数据源直接读取下边的配置信息 --> <property name="dataSource" ref="dataSource"></property> <property name="hibernateProperties"> <props> <prop key="hibernate.show_sql">true</prop> <prop key="hibernate.format_sql">true</prop> <prop key="hibernate.dialect">org.hibernate.dialect.Oracle9Dialect</prop> <prop key="hibernate.current_session_context_class">thread</prop> </props> </property> <!-- <property name="mappingResources">有点麻烦 <list> <value>cn/bdqn/jboa/entity/CheckResult.hbm.xml</value> <value>cn/bdqn/jboa/entity/ClaimVoucher.hbm.xml</value> </list> </property> --> <property name="mappingDirectoryLocations"> <list> <value>cn/bdqn/jboa/entity/</value> </list> </property> </bean>
声明hibernate事务
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager" p:sessionFactory-ref="sessionFactory"></bean>
4 整合MyBatis时
4.1 使用mapper.xml文件,使用SqlSessionTemplate
<!-- 配置SqlSessionFactory --> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource"></property> <!-- mybatis 核心配置文件 --> <property name="configLocation" value="classpath:mybatis-config.xml"></property> <!-- sql的映射文件 --> <property name="mapperLocations" value="classpath:cn/bdqn/dao/*.xml"></property> </bean>
<!-- 配置sqlSessionTemplate --> <bean id="sessionTemplate" class="org.mybatis.spring.SqlSessionTemplate"> <!-- 只能用构造方法注入 --> <constructor-arg name="sqlSessionFactory" ref="sqlSessionFactory"/> </bean>
4.2 使用Mapper工厂模式
<!-- 配置SqlSessionFactory --> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource"></property> <!-- mybatis 核心配置文件 --> <property name="configLocation" value="classpath:mybatis-config.xml"></property> <!-- 使用Mapper工厂模式,不需要加载配置文件 --> <!-- <property name="mapperLocations" value="classpath:cn/bdqn/dao/*.xml"></property> --> </bean>
<!-- 配置dao层的mapper --> <bean id="employeeMapper" class="org.mybatis.spring.mapper.MapperFactoryBean"> <property name="mapperInterface" value="cn.bdqn.dao.EmployeeMapper"></property> <property name="sqlSessionFactory" ref="sqlSessionFactory"></property> </bean>
4.3事务管理
<!-- 事务管理 --> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager" p:dataSource-ref="dataSource"> </bean>
5 springMVC配置
5.1 默认配置,可以不写
<bean name="/welcome.html" class="cn.bdqn.controller.WelcomeController"></bean>
<bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"></bean>
5.2 使用注解
<!-- 使用注解的方式实现映射 让spring扫描base-package包下所有的类,找标注@Controller的类 --> <context:component-scan base-package="cn.bdqn.controller"></context:component-scan> <mvc:annotation-driven></mvc:annotation-driven>
5.3配置试图解析器
<!-- 配置视图解析器 --> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/jsp/"></property> <property name="suffix" value=".jsp"></property> </bean>
5.4 配置全局异常
如果与局部异常同时存在,只执行局部异常。
<!-- 配置全局异常 SimpleMappingExceptionResolver Key为出现的异常类型,值为对应的逻辑视图名。 --> <bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver"> <property name="exceptionMappings"> <props> <prop key="cn.bdqn.exception.UserException">error</prop> </props> </property> </bean>
5.4 访问静态资源
<!-- 访问静态资源:将静态资源路径映射成url路径 **:模糊匹配,匹配statics/ 下所有的--> <mvc:resources location="/statics/" mapping="/statics/**"/>
5.5 上传文件
大小限制单位是字节byte
<!--上传文件 --> <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <property name="maxUploadSize" value="5000000"></property> </bean>
以上是关于spring在整合框架中常用配置的bean的主要内容,如果未能解决你的问题,请参考以下文章
框架 day36 Spring3 入门,DI依赖注入,装配bean基于xml/注解, 整合Junit4,配置约束自动提示
Spring+SpringMVC+MyBatis+Maven框架整合