spring boot 2.x 笔记
序
来自于杨开振《深入浅出 sprint boot 2.x》
注解
@Bean
@Bean(name="user") public User initUser(){ User user = new User(); user.setId(1L); //... return user; }
@Bean 表将 initUser 方法返回的 POJO 装配到 IoC 容器中,而其 属性 name 定义这个 Bean 名称,如果没有配置它,则将方法名称“initUser ”作为 Bean 的名称保 存到 pring IoC 容器中
@Component && ComponentScan
@Component 是标明哪个类被扫描进入 Spring IoC 容器,而@ComponentScan 是标明采用何种策略去扫描装配 Bean
package com.demo.component @Component("user") public class User{ //... }
这里的注解@Component 表明这个类将被 Spring IoC 容器扫描装配,其中配置的"user"则是作为 Bean 名称,当然你也可以不配置这个字符串 ,那 IoC 容器就会把类名第一个字母作为小写,其他不变作为 Bean 名称放入到 IoC 容器中
package com.deme.config @Configuration @ComponentScan public class AppConfig{ //... }
@ComponentScan如果不定义basePackages参数,将扫描类 AppConfig 所在的当前 包和其子包,以下是component的参数
自定义扫描包
@ComponentScan("com.demo.component.*")
@ComponentScan(basePackages = {"com.demo.component","com.demo.other"})