当前位置: 首页 > article >正文

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类

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、定义配置类

@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;
    }
}


http://www.kler.cn/a/543398.html

相关文章:

  • C# ASP.NET的发展历程
  • 【图片合并转换PDF】如何将每个文件夹下的图片转化成PDF并合并成一个文件?下面基于C++的方式教你实现
  • LeetCode --- 435周赛
  • 【Vue中BUG解决】npm error path git
  • bug-ant下拉框解决下拉框跟随表单容器(指定下拉框挂载容器):getPopupContainer=“p=>p.parentNode“
  • PHP 完整表单实例
  • KRR(知识表示与推理,Knowledge Representation and Reasoning)
  • 冒泡排序
  • 多租户数据源隔离
  • kindle.cn 无法接收邮件
  • pnpm的使用
  • 【工业安全】-CVE-2022-35555- Tenda W6路由器 命令注入漏洞
  • Java入门进阶
  • 日语学习-日语知识点小记-构建基础-JLPT-N4&N5阶段(4):~てもいいです & ~てはいきません征求许可
  • 在Mac M1上面安装Miniconda
  • 名词解释:npm,cnpm,yarn,vite,vue,electron
  • PySpark查找Dataframe中的非ASCII字符并导出Excel文件
  • 07贪心 + 动态规划(D1_基础学习)
  • 蓝桥杯试题:归并排序
  • PySide (PyQt)的视图(QGraphicsView)和场景(QGraphicsScene)
  • 深入理解现代前端框架:Vue.js 的进阶探秘
  • bash shell笔记——循环结构
  • 网络初识-
  • 基于微信小程序的超市售货管理平台
  • HttpServletRequest 作用
  • 从洗牌算法到前端工程化:如何用JavaScript实现真正的随机排序并应用到实际项目中