6、@Import注解——导⼊资源
在应⽤中,有时没有把某个类注⼊到IOC容器中,但在运⽤的时候需要获取该类对应的bean,此时就需要⽤到@Import注解。⽰例如下:先创建两个类,不⽤注解注⼊到IOC容器中,在应⽤的时候在导⼊到当前容器中。
1、创建Dog和Cat类
Dog类:
ample.demo;
public class Dog {
}
Cat类:
ample.demo;
public class Cat {
}
2、在启动类中需要获取Dog和Cat对应的bean,需要⽤注解@Import注解把Dog和Cat的bean注⼊到当前容器中。
ample.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import t.ConfigurableApplicationContext;
import t.annotation.ComponentScan;
import t.annotation.Import;
//@SpringBootApplication
@ComponentScan
/*把⽤到的资源导⼊到当前容器中*/
@Import({Dog.class, Cat.class})
public class App {
public static void main(String[] args) throws Exception {
ConfigurableApplicationContext context = SpringApplication.run(App.class, args);
System.out.Bean(Dog.class));
System.out.Bean(Cat.class));
context.close();
}
}
3、运⾏该启动类,输出结果:
从输出结果知,@Import注解把⽤到的bean导⼊到了当前容器中。
另外,也可以导⼊⼀个配置类
还是上⾯的Dog和Cat类,现在在⼀个配置类中进⾏配置bean,然后在需要的时候,只需要导⼊这个配置就可以了,最后输出结果相同。MyConfig 配置类:
ample.demo;
import t.annotation.Bean;
public class MyConfig {
@Bean
public Dog getDog(){
return new Dog();
}
@Bean
public Cat getCat(){
return new Cat();
}
}
⽐如若在启动类中要获取Dog和Cat的bean,如下使⽤:
ample.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import t.ConfigurableApplicationContext;
import t.annotation.ComponentScan;
import t.annotation.Import;
//@SpringBootApplication
@ComponentScan
/*导⼊配置类就可以了*/
@Import(MyConfig.class)spring ioc注解
public class App {
public static void main(String[] args) throws Exception {
ConfigurableApplicationContext context = SpringApplication.run(App.class, args);
System.out.Bean(Dog.class));
System.out.Bean(Cat.class));
context.close();
}
}

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。