Spring配置之<context:*>标签的三两事

本文详细探讨了Spring配置中的<context:property-placeholder/>、<context:spring-configured/>和<context:load-time-weaver/>标签。通过实例介绍了如何使用<context:property-placeholder/>进行属性文件占位符替换,利用<context:spring-configured/>实现非IOC容器中对象的依赖注入,以及<context:load-time-weaver/>在类加载时进行字节码增强。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天看到项目的配置,看后就当是复习了。懵懵懂懂工作两年,感觉虽然自己一直在使用spring作为工具,但是也没有涉及到spring的方方面面,今天的研究从一次无意的自动补全开始,还是那句话,不爱研究的程序员不是好的java工程师。。。


前两项<context:annotation-config/>和<context:component-scan/>这两项自然不用说,在项目中使用的是最多的,其次要提到的就是

<context:property-placeholder/>这一项。。


<context:property-placeholder/>篇

<context:property-placeholder   
        location="属性文件,多个之间逗号分隔"  
        file-encoding="文件编码"  
        ignore-resource-not-found="是否忽略找不到的属性文件"  
        ignore-unresolvable="是否忽略解析不到的属性,如果不忽略,找不到将抛出异常"  
        properties-ref="本地Properties配置"  
        local-override="是否本地覆盖模式,即如果true,那么properties-ref的属性将覆盖location加载的属性,否则相反"  
        system-properties-mode="系统属性模式,默认ENVIRONMENT(表示先找ENVIRONMENT,再找properties-ref/location的),NEVER:表示永远不用ENVIRONMENT的,OVERRIDE类似于ENVIRONMENT"  
        order="顺序"  
        /> 
举个例子:

  这个是最常见的JDBC的例子了,然后就可以使用:${key}占位符属性替换器

jdbc的properties文件

dbcp.driverClassName=oracle.jdbc.driver.OracleDriver
dbcp.username=qrpay

spring配置
<context:property-placeholder location="classpath:config/jdbc.properties" />
<bean id="dataSourceSpied" class="com.alibaba.druid.pool.DruidDataSource"
        init-method="init" destroy-method="close">
        <property name="url" value="${dbcp.url}" />
        <property name="username" value="${dbcp.username}" />
</bean>

<context:spring-configured/>篇

spring 可以为IOC容器里的bean进行依赖注入,但如果某些类,没有配置在IOC里,比如一些Domain Object,是否也可以依赖注入哪?答案是肯定的

以User 为例,该User并没有配置在IOC理,但我想对其里面的一个UserDao进行依赖注入,其代码如下:

@Configurable(autowire = Autowire.BY_NAME, dependencyCheck = false)
public class User {
      private String UserName;
      ....
      private  UserDao userDao;
     ...
      @Autowired
      public void setUserDao〔UserDao userDao〕{
             this.userDao=userDao.
     }

}
然后再在XML文件里加上 <context:spring-configured/>就可以了。<context:spring-configured/>主要是通过Spring管理 AnnotationBeanConfigurerAspect切面,  具体的工作由该切面完成。

<context:load-time-weaver/>篇




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值