- 学这个很多东西看书模模糊糊,要实际操作立马就懂了。
- 这个重写占位配置器,就是在比占位配置器的功能更加强大,它可以实现无需在bean下显式地配置peoperty信息,而是由重写展位配置器自动填充,它可以综合配置文件和属性文件的信息,当这两者的发生冲突的时候,属性文件(properties文件)会覆盖配置文件的信息。
- 要特别提醒地是,要实现重写资源配置器自动填充功能,需要在属性文件中把地属性格式写成酱紫,不然重写占位配置器会找不到的,毕竟它只是一个重写占位配置器
配置文件中某个bean的id.属性名字 = 具体值
- 这是代码,少侠笑纳
package TestPackage; import DbPackage.Db; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; //测试类 public class SpringTest { public static void main(String []args){ ApplicationContext applicationContext = new ClassPathXmlApplicationContext("beans.xml"); Db db = applicationContext.getBean("dataSource", Db.class); System.out.println(db.getDriver()); } }
<?xml version="1.0" encoding="GBK"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd"> <!--就是这里,重写属性配置器无需指定id,实现类为PropertyOverrideConfigurer,然后指定好属性文件--> <bean class="org.springframework.beans.factory.config.PropertyOverrideConfigurer"> <property name="locations"> <list> <value>dbconn.properties</value> </list> </property> </bean> <!--然后,这里试图使用配置文件定义dataSource的一个属性值,但这是会被重写占位配置器给覆盖的。--> <bean id="dataSource" class="DbPackage.Db"> <property name="driver" value="okokok" /> </bean> </beans>
#在属性文件中,属性的名字要写对。 dataSource.driver = com.microsoft.sqlserver.jdbc.SQLServerDriver dataSource.url = jdbc:sqlserver://localhost:1433; DatabaseName=homework_Submit_System dataSource.user = root dataSource.pass = 123456
package DbPackage; //这是普通bean public class Db { private String driver; private String url; private String user; private String pass; public void setDriver(String driver) { this.driver = driver; } public String getDriver() { return driver; } public String getUrl() { return url; } public String getUser() { return user; } public String getPass() { return pass; } public void setUrl(String url) { this.url = url; } public void setUser(String user) { this.user = user; } public void setPass(String pass) { this.pass = pass; } }
这是我看李刚编著的《轻量级javaEE企业应用实战(第五版)-Struts2+Spring5+Hibernate5/JAP2》后总结出来的。
Spring 进阶(4) 重写占位配置器
最新推荐文章于 2022-10-08 16:04:05 发布