@ImportResource导入资源
使用场景是 : 我们以前在spring
的配置文件里面会写非常多的组件导入。
比如:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="haha" class="com.chentianyu.boot.bean.User">
<!--俩个属性赋个默认值-->
<property name="name" value="user01"></property>
<property name="age" value="18"></property>
</bean>
<!--我们给容器中注册了一个组件-->
<bean id="hehe" class="com.chentianyu.boot.bean.Pet">
<property name="name" value="tomcat"></property>
</bean>
</beans>
我们想要挨个的迁移成注解的形式感觉可能有点麻烦或者我们引入人家的都三方包的比较老,别人使用的就是bean、xml的形式配置这些组件那对于这些组件在容器中有没有呢?默认现在肯定是没有的,确认一下
主程序.java
boolean haha = run.containsBean("haha");
System.out.println("haha:" + haha);
boolean hehe = run.containsBean("hehe");
System.out.println("hehe:" + hehe);
结果为:
haha:false
hehe:false
因为我们写的
beans.xml``springboot
也不知到这个文件是干嘛的,所以我们现在能看到的
如果你有了这个配置文件,你不想一点一点迁移成@Bean
注解写法,你可以写这样:
//在随便一个配置类上写一个@ImportResource导入一个资源
@ImportResource("classpath:beans.xml")//导入一个资源.():把资源路径一指定
//classpath: :类路径下的 beans.xml:这个文件
//相当于把我们spring配置文件这个(`beans.xml`)里面的内容给我重新解析放到容器中
加入这句话以后,我们看容器中有没有haha hehe
:
haha:true
hehe:true