@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

目录
相关文章
|
4月前
|
XML 存储 Java
@Configuration 注解使用及源码解析
@Configuration 注解使用及源码解析
36 4
|
6月前
|
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...
293 0
|
Java Spring 容器
配置类为什么要添加@Configuration注解?(1)
配置类为什么要添加@Configuration注解?(1)
142 0
配置类为什么要添加@Configuration注解?(1)
|
缓存 Java Spring
配置类为什么要添加@Configuration注解?(2)
配置类为什么要添加@Configuration注解?(2)
179 0
配置类为什么要添加@Configuration注解?(2)
|
容器
@Configuration和@Component注解的区别
1.@Configuration和@Component注解的源码如下 (1)Configuration注解源码如下:
193 0
记一个SpringBoot中属性注入失败的问题Consider defining a bean of type ''' in your configuration...
记一个SpringBoot中属性注入失败的问题Consider defining a bean of type ''' in your configuration...
195 0
|
Java 中间件 编译器
真懂Spring的@Configuration配置类?你可能自我感觉太良好(下)
真懂Spring的@Configuration配置类?你可能自我感觉太良好(下)
真懂Spring的@Configuration配置类?你可能自我感觉太良好(下)
|
XML Java 数据格式
SpringBoot配置类中的@Configuration注解和@bean注解
SpringBoot配置类中的@Configuration注解和@bean注解
1535 0
SpringBoot配置类中的@Configuration注解和@bean注解
|
设计模式 XML Java
SPRING02_核心注解、Bean、primary、DependsOn、Lazy、Scope、ComponentScan、详解Import、Lookup注解(一)
SPRING02_核心注解、Bean、primary、DependsOn、Lazy、Scope、ComponentScan、详解Import、Lookup注解(一)
178 0
SPRING02_核心注解、Bean、primary、DependsOn、Lazy、Scope、ComponentScan、详解Import、Lookup注解(一)