spring教程笔记5
使用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相关推荐
- 动力节点—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 基于 ...
- Java基础知识 廖雪峰教程笔记
Java基础知识 Java基础知识 java简介 名词解释 运行Java程序 Java基本数据类型 模块 包装类型 记录类 异常处理 Java异常 使用Commons Logging 使用log4j ...
- 【Spring学习笔记-MVC-13.2】Spring MVC之多文件上传
作者:ssslinppp 1. 摘要 前篇文章讲解了单文件上传<[Spring学习笔记-MVC-13]Spring MVC之文件上传>http://www.cnblogs.co ...
- Spring读书笔记——bean创建(下)
有关Spring加载bean系列,今天这是最后一篇了,主要接上篇对于从Spring容器中获取Bean的一些细节实现的补充. <Spring读书笔记--bean加载>--Spring如何加载 ...
- Spring学习笔记(三) AOP_annotation,AOP_XML
在学习课程以前,听说AOP有种很神秘的感觉,好像很好深的技术.其实原理很简单,使用动态代理的方式给程序增加逻辑.与此相似的有struts2中的filter拦截器. 再讲AOP之前先把需求说一下: 同S ...
- 台湾国立大学郭彦甫Matlab教程笔记(22) Cramer's method(Inverse matrix逆矩阵法)
台湾国立大学郭彦甫Matlab教程笔记(22) Cramer's method(Inverse matrix) matrix left division左除:\ or mldivide() solvi ...
- 台湾国立大学郭彦甫Matlab教程笔记(21)linear equations(高斯消去法和追赶法)
台湾国立大学郭彦甫Matlab教程笔记(21) today: linear equation 线性方程 linear system 线性系统 我们先看第一部分 linear equation 假定一个 ...
- 台湾国立大学郭彦甫Matlab教程笔记(20) root finding(numeric)
台湾国立大学郭彦甫Matlab教程笔记(20) root finding(numeric) symbolic vs. numeric符号法和数值法的区别对比 symbolic 1)advantages ...
- 台湾国立大学郭彦甫Matlab教程笔记(17)numerical integration
台湾国立大学郭彦甫Matlab教程笔记(17)numerical integration 数值积分 calculating the numerical value of a definite inte ...
- 台湾国立大学郭彦甫Matlab教程笔记(16) 数值微分 numerical differentiation
台湾国立大学郭彦甫Matlab教程笔记(16) 数值微分 numeric differentiation 复习:diff()函数用来计算vector前后 entry的差异 数值微分继续 various ...
最新文章
- 《R语言数据挖掘》----1.12 数据集成
- python 类-9. 类 — Python 3.9.0 文档
- 1065 A+B and C (64bit) (20 分)【难度: 简单 / 思维 高精度】
- 编辑距离及最小编辑距离算法(转)----动态规划
- linux系统加硬盘容量,Linux系统扩展硬盘空间
- Go大型项目实战:项目结构、配置管理、API设计
- cache control 里 no-cache 和 no-store 的区别
- 将多个文件绑在一起执行
- 自动驾驶3-2 安全保证和测试的行业方法 Industry Methods for Safety Assurance and Testing
- 手写字体生成器,这种软件居然被大佬做出来了!
- mysql字段动态扩展_数据库动态扩展字段
- Win10 LTSC版如何安装应用商店Microsoft Store
- python内建方法
- matlab 有一函数 _写一程序_输入自变量的值_输出函数值.,第2讲 MATLAB入门1_数学建模_ppt_大学课件预览_高等教育资讯网...
- 这些中国顶级黑客带来的价值远比负面影响多!
- 学渣的刷题之旅 leetcode刷题 9. 回文数
- C语言训练-1522-对称矩阵的判定
- Android pm命令详解
- access与trunk详细解析+区别
- idea创建module没有图标显示