Spring配置补充

Spring配置补充

在这里插入图片描述

灵活配置DataSource

实现Spring和MyBatis集成的过程中,我们学习了在Spring中配置数据源的方法。实际开发中数据源还有很多的配置方式可以选择。

使用属性文件配置数据源

之前的学习中我们了解了使用属性文件管理配置信息的优点.即将数据库连接信息写在属性文件中。使DataSource的可配置性更强.便于维护。Spring 也支持从属性文件中获取信息来进行数据源
配置。
使用Spring提供的PropertyPlaceholderConfigurer 类可以加载属性文件。在Spring配置文件中可以
采用…的方式引用属性文件中的键值对。读取属性文件配置DataSource的方法如下所示。

 <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
        <property name="location">
            <value>classpath:database.properties</value>
        </property>
    </bean>
    <!-- 配置DataSource -->
    <bean id="dataSource" destroy-method="close" class="org.apache.commons.dbcp.BasicDataSource">
        <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>

database.properties属性文件内容如下所示:

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://127.0.0.1:3306/smbms?useUnicode=true&characterEncoding=utf-8
jdbc.username=root
jdbc.password=root

使用JNDI数据源

如果应用部署在高性能的应用服务器(如Tomcat, WebLogic等)上,我们可能更希望使用应用服务器本身提供的数据源。应用服务器的数据源使用JNDI方式供使用者调用, Spring为此专门提供引用JMDI资源的JndiObjectFactoryBean类。
使用AD的方式配置数据源,前提是必须在应用服务器上配置好数据源。我们以Tomcat为例配置数据源需要把数据库驱动文件放到Tomcat的lib目录下,并修改Tomcat的conf目录下的context.xml文件,配置数据源代码如下所示:

<Context>
    <!-- Default set of monitored resources -->
    <WatchedResource>WEB-INF/web.xml</WatchedResource>

<Resource name="jdbc/smbms" auth="Container" type="javax.sql.DataSource"
    maxActive="100" maxIdle="30" maxWait="10000" username="root"
    password="root" driverClassName="com.mysql.jdbc.Driver"
    url="jdbc:mysql://127.0.0.1:3306/smbms?
               useUnicode=true&amp;characterEncoding=utf-8"/>
</Context>

< Resource >标签的name属性指定了数据源的名称,要与Spring配置文件中jndiName 值java:comp/env/后的名称要保存一致。Spring配置文件内容如下所示:

<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
        <!--通过jndiName指定引用的JNDI数据源名称 -->
        <property name="jndiName">
            <value>java:comp/env/jdbc/smbms</value>
        </property>
    </bean>

在这里插入图片描述

Spring中Bean的作用域问题

理解Bean的作用域

在Spring中定义Bean,除了可以创建Bean实例并对Bean的属性进行注入外,还可以为所定义的Bean指定一个作用域。这个作用域的取值决定了Spring 创建该组件实例的策略.进而影响程序的
运行效率和数据安全。在Spring2.0及之后的版本中. Bean的作用域被划分为5种,如表8-1所示。
在这里插入图片描述

使用注解指定Bean的作用域

对于使用注解声明的Bean组件,如需修改其作用域,可以使用@Scope注解,关键代码如下所示:
在这里插入图片描述

Spring的自动装配

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

拆分Spring配置文件

对于使用XML方式进行配置的Spring项目,项目规模较大时,配置文件可读性,可维护性差,庞大的Spring配置文件难以阅读。此外,在进行团队开发时.多人修改同一配置文件容易发生冲突,降低开发效率。鉴于以上原因,对于使用XML方式进行配置的Spring项目,建议将一-个大的配置文件分解成多个小的配置文件,每个配置文件仅仅配置功能近似的Bean。
那么采用什么策略拆分Spring配置文件呢?
➢如果一个开发人员负责一个模块,我们采用公用配置(包含数据源、事务等) +每个系统模块一个单独配置文件(包含Dao、Service 及Web控制器)的形式。
➢如果开发是按照分层进行的分工, 我们采用公用配置(包含数据源、事务等) +DAO Bean 配置+业务逻辑Bean配置+Web控制器配置的形式。
两种拆分策略各有特色,适用于不同的场合。
拆分Spring配置文件,不仅可以分散配置文件.降低修改配置文件的难度和冲突的风险,而且
更符合”分而治之”的软件工程原理。

引入拆分后的配置文件

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值