SpringBoot复习:(45)@Component定义的bean会被@Bean定义的同名的bean覆盖

有同名的bean需要配置:

spring.main.allow-bean-definition-overriding=true

否则报错。

package cn.edu.tju.component;

import org.springframework.stereotype.Component;

@Component
public class Person {
    private String name;
    private int age;

    {
        this.name = "nameInComponent";
        this.age =33;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}

package cn.edu.tju.config;

import cn.edu.tju.component.Person;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class PersonConfig {
    @Bean("person")
    Person getPerson(){
        Person p = new Person();
        p.setAge(23);
        p.setName("nameInBeanAnnotation");
        return  p;
    }
}

package cn.edu.tju;

import cn.edu.tju.component.Person;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ConfigurableApplicationContext;

@SpringBootApplication
public class Start {
    public static void main(String[] args) {
        ConfigurableApplicationContext context = SpringApplication.run(Start.class, args);
        Person person = context.getBean("person", Person.class);
        System.out.println(person.getName());

    }
}

运行结果

相关推荐
二两小咸鱼儿9 分钟前
Java Demo - JUnit :Unit Test(Assert Methods)
java·后端·junit
字节源流12 分钟前
【spring】配置类和整合Junit
java·后端·spring
跪在镜子前喊帅40 分钟前
【面试】Java 多线程
java·面试
好看资源平台1 小时前
Java/Kotlin逆向基础与Smali语法精解
java·开发语言·kotlin
zimoyin1 小时前
解决 Java/Kotlin 资源加载问题
java·python·kotlin
武昌库里写JAVA1 小时前
原生iOS集成react-native (react-native 0.65+)
vue.js·spring boot·毕业设计·layui·课程设计
m0_748230942 小时前
Spring Boot 整合 Redis 步骤详解
spring boot·redis·bootstrap
阿木看源码2 小时前
bindingAdapter的异常错误
java·开发语言
跪在镜子前喊帅3 小时前
【面试】框架
java·面试
~Yogi3 小时前
每日学习Java之一万个为什么
java·开发语言·学习