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"})

原文地址:https://www.cnblogs.com/jxlsblog/p/12997261.html