使用Spring的特殊bean

package com.hsp.beanlife;import org.springframework.beans.BeansException;
import org.springframework.beans.factory.config.BeanPostProcessor;public class MyBeanPostProcessor implements BeanPostProcessor {public Object postProcessAfterInitialization(Object arg0, String arg1)throws BeansException {// TODO Auto-generated method stubSystem.out.println("postProcessAfterInitialization 函数被调用");System.out.println(arg0+" 被创建的时间是"+new java.util.Date());return arg0;}public Object postProcessBeforeInitialization(Object arg0, String arg1)throws BeansException {// TODO Auto-generated method stubSystem.out.println("postProcessBeforeInitialization 函数被调用");return arg0;}}
<!-- 配置我们的自己后置处理器(有点类似我们的filter) -->
<bean id="myBeanPostProcessor" class="com.hsp.beanlife.MyBeanPostProcessor" />
</beans>

通过properties文件注入特殊bean

package com.hsp.dispatch;public class DBUtil {private String drivername;private String url;private String name;private String pwd;public String getDrivername() {return drivername;}public void setDrivername(String drivername) {this.drivername = drivername;}public String getUrl() {return url;}public void setUrl(String url) {this.url = url;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getPwd() {return pwd;}public void setPwd(String pwd) {this.pwd = pwd;}
}
name=scott
drivername=oracle:jdbc:driver:OracleDirver
url=jdbc:oracle:thin:@127.0.0.1:1521:hsp
pwd=tiger# key=value
db2.name=scott3
db2.drivername=oracle:jdbc:driver:OracleDirver3
db2.url=jdbc:oracle:thin:@127.0.0.1:1521:hsp3
db2.pwd=tiger3# key=value
<?xml version="1.0" encoding="utf-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:context="http://www.springframework.org/schema/context"xmlns:tx="http://www.springframework.org/schema/tx"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsdhttp://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd"><!-- 引入我们的db.properties文件 -->
<context:property-placeholder location="classpath:com/hsp/dispatch/db.properties,classpath:com/hsp/dispatch/db2.properties"/>
<!-- 配置一DBUtil对象 $占位符号 -->
<bean id="dbutil" class="com.hsp.dispatch.DBUtil">
<property name="name" value="${name}" />
<property name="drivername" value="${drivername}" />
<property name="url" value="${url}" />
<property name="pwd" value="${pwd}" />
</bean><!-- 配置一DBUtil对象 -->
<bean id="dbutil2" class="com.hsp.dispatch.DBUtil">
<property name="name" value="${db2.name}" />
<property name="drivername" value="${db2.drivername}" />
<property name="url" value="${db2.url}" />
<property name="pwd" value="${db2.pwd}" />
</bean></beans>
package com.hsp.dispatch;import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;public class App1 {/*** @param args*/public static void main(String[] args) {// TODO Auto-generated method stubApplicationContext ac=new ClassPathXmlApplicationContext("com/hsp/dispatch/beans.xml");DBUtil dbUtil=(DBUtil) ac.getBean("dbutil2");System.out.println(dbUtil.getDrivername()+" "+dbUtil.getName());}}

运行结果:

2020-3-2 14:15:34
org.springframework.context.support.AbstractApplicationContext prepareRefresh
信息: Refreshing org.springframework.context.support.ClassPathXmlApplicationContext@1ef9f1d: display name [org.springframework.context.support.ClassPathXmlApplicationContext@1ef9f1d]; startup date [Mon Mar 02 14:15:34 CST 2020]; root of context hierarchy
2020-3-2 14:15:34 org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
信息: Loading XML bean definitions from class path resource [com/hsp/dispatch/beans.xml]
2020-3-2 14:15:35 org.springframework.context.support.AbstractApplicationContext obtainFreshBeanFactory
信息: Bean factory for application context [org.springframework.context.support.ClassPathXmlApplicationContext@1ef9f1d]: org.springframework.beans.factory.support.DefaultListableBeanFactory@f0c85e
2020-3-2 14:15:35 org.springframework.core.io.support.PropertiesLoaderSupport loadProperties
信息: Loading properties file from class path resource [com/hsp/dispatch/db.properties]
2020-3-2 14:15:35 org.springframework.core.io.support.PropertiesLoaderSupport loadProperties
信息: Loading properties file from class path resource [com/hsp/dispatch/db2.properties]
2020-3-2 14:15:35 org.springframework.beans.factory.support.DefaultListableBeanFactory preInstantiateSingletons
信息: Pre-instantiating singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@f0c85e: defining beans [org.springframework.beans.factory.config.PropertyPlaceholderConfigurer#0,dbutil,dbutil2]; root of factory hierarchy
```oracle:jdbc:driver:OracleDirver3 scott3

spring教程笔记5相关推荐

  1. 动力节点—2020最新Spring教程笔记(上)

    文章目录 1 Spring 概述 2 IOC 控制反转 2.1 基于XML的DI 2.1.1 注入分类 2.1.1.1 set注入 2.1.1.2 构造注入(了解) 2.1.2 自动注入 2.2 基于 ...

  2. Java基础知识 廖雪峰教程笔记

    Java基础知识 Java基础知识 java简介 名词解释 运行Java程序 Java基本数据类型 模块 包装类型 记录类 异常处理 Java异常 使用Commons Logging 使用log4j ...

  3. 【Spring学习笔记-MVC-13.2】Spring MVC之多文件上传

    作者:ssslinppp       1. 摘要 前篇文章讲解了单文件上传<[Spring学习笔记-MVC-13]Spring MVC之文件上传>http://www.cnblogs.co ...

  4. Spring读书笔记——bean创建(下)

    有关Spring加载bean系列,今天这是最后一篇了,主要接上篇对于从Spring容器中获取Bean的一些细节实现的补充. <Spring读书笔记--bean加载>--Spring如何加载 ...

  5. Spring学习笔记(三) AOP_annotation,AOP_XML

    在学习课程以前,听说AOP有种很神秘的感觉,好像很好深的技术.其实原理很简单,使用动态代理的方式给程序增加逻辑.与此相似的有struts2中的filter拦截器. 再讲AOP之前先把需求说一下: 同S ...

  6. 台湾国立大学郭彦甫Matlab教程笔记(22) Cramer's method(Inverse matrix逆矩阵法)

    台湾国立大学郭彦甫Matlab教程笔记(22) Cramer's method(Inverse matrix) matrix left division左除:\ or mldivide() solvi ...

  7. 台湾国立大学郭彦甫Matlab教程笔记(21)linear equations(高斯消去法和追赶法)

    台湾国立大学郭彦甫Matlab教程笔记(21) today: linear equation 线性方程 linear system 线性系统 我们先看第一部分 linear equation 假定一个 ...

  8. 台湾国立大学郭彦甫Matlab教程笔记(20) root finding(numeric)

    台湾国立大学郭彦甫Matlab教程笔记(20) root finding(numeric) symbolic vs. numeric符号法和数值法的区别对比 symbolic 1)advantages ...

  9. 台湾国立大学郭彦甫Matlab教程笔记(17)numerical integration

    台湾国立大学郭彦甫Matlab教程笔记(17)numerical integration 数值积分 calculating the numerical value of a definite inte ...

  10. 台湾国立大学郭彦甫Matlab教程笔记(16) 数值微分 numerical differentiation

    台湾国立大学郭彦甫Matlab教程笔记(16) 数值微分 numeric differentiation 复习:diff()函数用来计算vector前后 entry的差异 数值微分继续 various ...

最新文章

  1. 《R语言数据挖掘》----1.12 数据集成
  2. python 类-9. 类 — Python 3.9.0 文档
  3. 1065 A+B and C (64bit) (20 分)【难度: 简单 / 思维 高精度】
  4. 编辑距离及最小编辑距离算法(转)----动态规划
  5. linux系统加硬盘容量,Linux系统扩展硬盘空间
  6. Go大型项目实战:项目结构、配置管理、API设计
  7. cache control 里 no-cache 和 no-store 的区别
  8. 将多个文件绑在一起执行
  9. 自动驾驶3-2 安全保证和测试的行业方法 Industry Methods for Safety Assurance and Testing
  10. 手写字体生成器,这种软件居然被大佬做出来了!
  11. mysql字段动态扩展_数据库动态扩展字段
  12. Win10 LTSC版如何安装应用商店Microsoft Store
  13. python内建方法
  14. matlab 有一函数 _写一程序_输入自变量的值_输出函数值.,第2讲 MATLAB入门1_数学建模_ppt_大学课件预览_高等教育资讯网...
  15. 这些中国顶级黑客带来的价值远比负面影响多!
  16. 学渣的刷题之旅 leetcode刷题 9. 回文数
  17. C语言训练-1522-对称矩阵的判定
  18. Android pm命令详解
  19. access与trunk详细解析+区别
  20. idea创建module没有图标显示

热门文章

  1. PHP下简单交换两个变量
  2. python核心数据类型
  3. Memory Networks
  4. 5G概念被热炒,运营商吃相不要太难看
  5. c# thread数线程的创建
  6. SEO行业应该如何给客户报价
  7. kvm虚拟化学习笔记(五)之windows虚拟机性能调整
  8. 命令行下对apk签名
  9. java代码split分割数字类
  10. U盘病毒从认识到防范