SpringBoot中的Javaconfig

为什么要使用Javaconfig?

  • 如果要声明的bean对象,来自于第三方jar包(不是自定义的),无法使用@Component 及衍生注解来声明bean,因为第三方的jar一般不可写,需要使用注解@Configuration和@Bean注解来完成。

**JavaConfig是:**定义java类(配置类)来代替xml配置文件,在配置类中创建java对象,并把对象注入到springIoc容器中。

  • 使用两个注解完成:
    • @Configuration : 标注在类上面,表示定义为配置类。
    • @Bean:写在配置类中的方法上,将 方法的返回值 注入到Spring IOC容器中管理
      • @Bean注解的name属性:指定bean对象的id(名称),如果不指定默认为:方法名

代码示例:

1、创建Student类

java 复制代码
public class Student {
	private String name;
	private Integer age;
	private String sex;

	public Student() {
	}

	public Student(String name, Integer age, String sex) {
		this.name = name;
		this.age = age;
		this.sex = sex;
	}

	public String getName() {
		return name;
	}

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

	public Integer getAge() {
		return age;
	}

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

	public String getSex() {
		return sex;
	}

	public void setSex(String sex) {
		this.sex = sex;
	}

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

2、定义配置类

java 复制代码
@Configuration
public class SpringConfig {
    @Bean
    public Student createStudent(){
        Student student1 = new Student();
        student1.setName("张三");
        student1.setAge(26);
        student1.setSex("男");
        return student1;
    }

    @Bean(name = "lisiStudent")
    public Student makeStudent(){
        Student student2 = new Student();
        student2.setName("李四");
        student2.setAge(26);
        student2.setSex("男");
        return student2;
    }
}
相关推荐
codingPower2 分钟前
JAVA后端安全进阶:基于HMAC-SHA256+Nonce+Timestamp的API防重放攻击方案
java·开发语言·spring boot·安全
暗冰ཏོ4 分钟前
Go 语言从入门到后端项目实战完整指南
开发语言·后端·golang·go·go语言
寂夜了无痕8 分钟前
IntelliJ IDEA 高效配置:新建文件自动生成作者与时间注释
java·ide·intellij-idea
霸道流氓气质15 分钟前
Windows批处理脚本完整指南:可移植的交互式SpringBoot项目管理
windows·spring boot·后端
leonidZhao16 分钟前
Java 25新特性:模块导入申明
java
小杍随笔17 分钟前
【Rust 工具链管理完全指南:rustup toolchain 命令实战详解】
开发语言·后端·rust
还是鼠鼠21 分钟前
AI掘金头条新闻系统 (Toutiao News)-获取用户信息
后端·python·mysql·fastapi·web
BingoGo24 分钟前
免费可商用 PHP 管理后台 CatchAdmin V5.3.1 发布 后台打包直降 5s 内
后端·php
JaguarJack36 分钟前
免费可商用 PHP 管理后台 CatchAdmin V5.3.1 发布 后台打包直降 5s 内
后端·php·laravel
weixin_4896900241 分钟前
【IDEA 2025.2.4】 Maven 仅能手动 Reload All Maven Projects 问题解决
java·maven·intellij-idea