指定包
可以通过在入口中
@SpringBootApplication
配置对应路径的包
@SpringBootApplication(scanBasePackages = "ccc.xxx")
或者使用
@ComponentScan("")
@Configuration与@Bean
@Configuration是标记在一个类上,使其成为配置类。 在配置类内部可以通过定义public方法,并在上面标注 @Bean 从而使得IOC容器中注入进一个 名字为方法名,返回值类型是方法类型,值是返回的对象的一个对象。 如
@Configuration
public class JdbcConfiguration {
@Bean
public DataSource dataSource(){
DataSource dataSource=new DruidDataSource();
return dataSource;
}
}
从而完成DI,以配置类代替配置文件 也可以在Bean标签中自定义对象的名字
而通过该方法创建的Bean默认都是单例的。
细节:
- 而当在@Configuration 中默认proxyBeanMethods为true时,也就是说这个类如果通过getBean拿出来,就成了一个代理对象,而不是原来的对象。所以如果通过getBean拿出这个配置类(在容器中),再调用方法(如图为dataSource),则都是从容器中拿出来。也就是说是单例。
- 如果将其改为false,则拿出的就不是代理对象,而是这个类自身的对象。所以他们再调用方法创建的对象就不是单例的了。
- 将默认情况(true)称为Full,false称为Lite(轻量级)
一般调成true是为了解决依赖问题。
@Import
Import中有一属性为value value是一个类的数组。可以将多个类的.class对象加载进去。 作用是自动调用这些类的无参构造方法。然后注入对应的bean对象
|