spring的简单配置使用

来源:互联网 发布:金石计价软件公司地址 编辑:程序博客网 时间:2024/06/05 20:12

spring配置

从毕业到现在已经四年多了,接触spring也四年多了,看了一些有关spring的书,但一直都是看过就忘,很少做笔记记录,很多时候都是从以往的项目中copy配置文件改改就使用了,现将常用的配置整理一下,如有不对的地方望大家批评指正。


自动扫描

在使用spring的注解时,需要开启包扫描,否则无法将类加载到spring容器中。

<!--自动扫描--><context:annotation-config/><!--指定扫描的包名--><context:component-scan base-package="com.jihb.tally.sdk.service,com.jihb.tally.sdk.dao,com.jihb.tally.sdk.impl"/>

properties文件的配置使用

properties文件的两种配置方式

1、使用org.springframework.beans.factory.config.PropertyPlaceholderConfigurer

<context:property-placeholder location="classpath:config.properties"/>

<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">        <property name="locations">            <list>                <value>classpath:config.properties</value>            </list>        </property>        <property name="fileEncoding" value="utf-8"/> </bean>

2、使用org.springframework.beans.factory.config.PropertiesFactoryBean

<bean id="config" class="org.springframework.beans.factory.config.PropertiesFactoryBean">      <property name="locations">          <list>              <value>classpath:config.properties</value>          </list>      </property>      <property name="fileEncoding" value="utf-8"/></bean>

这两种方式都是可以指定多个properties文件的,第一种方式的第一种写法是一种简化写法,有多个文件时,只需要在多个文件之间以逗号分隔即可,第一种方式的第二种写法和第二种配置方式则在list配置下添加即可。当然,PropertyPlaceholderConfigurer和PropertiesFactoryBean在使用的时候也是有所区别的。如在通过spring的注解来自动注入值时的写法就有所不同了。

第一种方式的写法如下:

@Value("${sys.sysName}")private String sysName;

第二种方式的写法如下:

@Value("#{config['sys.sysName']")private String sysName;

使用jdbc配置

spring中对jdbc和其他orm框架都进行了一定的封装,已使用户更方便的使用它们,在这里只说说spring-jdb的配置。
在配置使用jdbc时,一般需要配置数据源和事物管理,如果事物是要通过aop来限制的话,还需要配置aop切面和advice增强。

配置数据源

<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">      <property name="driverClass" value="${jdbc.driverClassName}"/>      <property name="jdbcUrl" value="${jdbc.url}"/>      <property name="user" value="${jdbc.username}"/>      <property name="password" value="${jdbc.password}"/>      <property name="maxPoolSize" value="${jdbc.maxPoolSize}"/>      <property name="minPoolSize" value="${jdbc.minPoolSize}"/>      <property name="initialPoolSize" value="${jdbc.initialPoolSize}"/>      <property name="maxIdleTime" value="${jdbc.maxIdleTime}"/>      <property name="preferredTestQuery" value="select 1"/></bean>

配置事物

<!--事物控制-->    <tx:annotation-driven transaction-manager="transactionManager"/>    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">        <property name="dataSource" ref="dataSource"/>    </bean>

transaction-manager=”transactionManager”这个其实是可以不用配的,因为默认就会引用名为transactionManager的事物管理。可以简写为:

<tx:annotation-driven/>

配置aop

<aop:config>      <!--切面-->      <aop:pointcut id="serviceMethod" expression="execution(* *.*.*Impl.*(..))"/>      <!--引用事物增强-->      <aop:advisor advice-ref="txAdvice" pointcut-ref="serviceMethod"/>  </aop:config>  <!--事物增强-->  <tx:advice id="txAdvice" transaction-manager="transactionManager">      <tx:attributes>          <tx:method name="get*" read-only="true"/>          <tx:method name="find*" read-only="true"/>          <tx:method name="query*" read-only="true"/>          <tx:method name="add*"/>          <tx:method name="update*"/>      </tx:attributes></tx:advice>

配置jdbc工具类

<bean id="jdbcHelper" class="com.jihb.tally.sdk.spjdbc.impl.MySqlJdbcHelper">       <property name="dataSource" ref="dataSource"></property></bean>

这样在spring中就可以使用jdbc进行数据访问了,MySqlJdbcHelper是我自己封装的数据访问类,最终都是使用spring封装的JdbcTemplate来进行数据访问。MySqlJdbcHelper中定义两个变量JdbcTemplate jdbcTemplate和DataSource dataSource,代码如下:

JdbcTemplate jdbcTemplate;DataSource dataSource;public void setDataSource(DataSource dataSource) {    this.jdbcTemplate = new JdbcTemplate(dataSource);    this.dataSource = dataSource;}

时间有限,暂且写到这里,语言能力比较差,望读者大大门见谅!!

阅读全文
0 0
原创粉丝点击