@Configuration注解

简介: @Configuration注解

@Configuration注解

作用一:@Configuration配置spring 并 启动spring容器

spring容器配置类

@Configuration
public class SpringConfig {
    public SpringConfig(){
        System.err.println("SpringConfig启动");
    }
}

主线程启动类

@SpringBootApplication
public class Demo2Application {

    public static void main(String[] args) {
        AnnotationConfigApplicationContext annotationConfigApplicationContext =
                new AnnotationConfigApplicationContext(SpringConfig.class);
        System.err.println("服务启动成功");
    }

}

结果

可以看出我们在主程序里面启动了spring容器,@Configuration配置SpringConfig并启动Spring容器

作用二:@Configuration启动容器+@Bean注册Bean,@Bean下管理bean的生命周期

启动类

@SpringBootApplication
public class Demo2Application {

    public static void main(String[] args) {
        AnnotationConfigApplicationContext annotationConfigApplicationContext =
                new AnnotationConfigApplicationContext(SpringConfig.class);
        System.err.println("服务启动成功");
        User getUser = annotationConfigApplicationContext.getBean("getUser", User.class);
        System.err.println(getUser);
    }

}

实体类

public class User {
    @Value("yyb")
    private String name;
    @Value("nan")
    private String sex;
    @Value("15")
    private Integer age;

    @Override
    public String toString() {
        return "User{" +
                "name='" + name + '\'' +
                ", sex='" + sex + '\'' +
                ", age=" + age +
                '}';
    }
}

spring容器配置类 并在里面注册bean

@Configuration
@ComponentScan("com.yun.demo2.pojo")
public class SpringConfig {
    public SpringConfig(){
        System.err.println("SpringConfig启动");
    }
    @Bean
    public User getUser(){
        return new User();
    }
}

结果

可以看出注册bean成功:用@Bean注解时方法名相当于 bean的id 返回值是bean的class

作用三:@Configuration启动容器+@Component注册Bean

启动类

@SpringBootApplication
public class Demo2Application {

    public static void main(String[] args) {
        AnnotationConfigApplicationContext annotationConfigApplicationContext =
                new AnnotationConfigApplicationContext(SpringConfig.class);
        System.err.println("服务启动成功");
        User getUser = annotationConfigApplicationContext.getBean("user", User.class);
        System.err.println(getUser);
    }

}

实体类并用@component注册bean

@Component
public class User {
    @Value("yyb")
    private String name;
    @Value("nan")
    private String sex;
    @Value("15")
    private Integer age;

    @Override
    public String toString() {
        return "User{" +
                "name='" + name + '\'' +
                ", sex='" + sex + '\'' +
                ", age=" + age +
                '}';
    }
}

spring配置类

@Configuration
@ComponentScan("com.yun.demo2.pojo")
public class SpringConfig {
    public SpringConfig(){
        System.err.println("SpringConfig启动");
    }
}

结果

可以看出注册bean成功,当使用@component注解时,类名小写相当于bean的id 同时类名也表示实体类名 所有类名也是bean的class

目录
相关文章
|
2月前
|
Java Spring 容器
@Resource 这个注解什么用啊
@Resource 这个注解什么用啊
|
2月前
|
XML Java 数据格式
@Configuration配置类注解的理解
@Configuration配置类注解的理解
@Configuration配置类注解的理解
记一个SpringBoot中属性注入失败的问题Consider defining a bean of type ''' in your configuration...
记一个SpringBoot中属性注入失败的问题Consider defining a bean of type ''' in your configuration...
255 0
|
XML Java 数据格式
JavaConfig与常见Annotation(必知必会系列)
上一篇我们介绍了 Spring中Bean的生命周期,这一篇我们接着学习在Spring Boot中的一些常用注解。
135 0
JavaConfig与常见Annotation(必知必会系列)
|
Java Spring 容器
配置类为什么要添加@Configuration注解?(1)
配置类为什么要添加@Configuration注解?(1)
124 0
配置类为什么要添加@Configuration注解?(1)
|
缓存 Java Spring
配置类为什么要添加@Configuration注解?(2)
配置类为什么要添加@Configuration注解?(2)
141 0
配置类为什么要添加@Configuration注解?(2)
@Configuration和@Component注解的区别
1.@Configuration和@Component注解的源码如下 (1)Configuration注解源码如下:
记一个SpringBoot中属性注入失败的问题Consider defining a bean of type ''' in your configuration...
记一个SpringBoot中属性注入失败的问题Consider defining a bean of type ''' in your configuration...
164 0
|
XML Java 数据格式
SpringBoot配置类中的@Configuration注解和@bean注解
SpringBoot配置类中的@Configuration注解和@bean注解
1412 0
SpringBoot配置类中的@Configuration注解和@bean注解
|
XML Java 测试技术
真懂Spring的@Configuration配置类?你可能自我感觉太良好(中)
真懂Spring的@Configuration配置类?你可能自我感觉太良好(中)