Spring之路(13)--在JavaConfig配置中装配bean

简介: 本文目录1. 概述2. 按类型自动装配实例2.1 干干净净的歌手类、舞者类、舞台类2.2 配置bean并自动装配2.3 测试3. 按名称自动装配4. 总结

1. 概述

与注解配置类似,JavaConfig中也是自动装配Bean,同样可以按类型或者按名称自动装配,相信如果您对前面xml和注解方式已经比较了解的话,本篇就不用赘述太多了,此处直接上代码,需要讲解的会在注释中给出。


2. 按类型自动装配实例

2.1 干干净净的歌手类、舞者类、舞台类

由于注入工作是在javaconfig中完成,所以类上无须添加特殊信息。


package org.maoge.javaconfigssemble;

//普通歌手类

public class Singer {

private String name;

public String getName() {

 return name;

}

public void setName(String name) {

 this.name = name;

}

}


package org.maoge.javaconfigssemble;

//普通舞者类

public class Dancer {

private String name;

public String getName() {

 return name;

}

public void setName(String name) {

 this.name = name;

}

}


package org.maoge.javaconfigssemble;

//普通舞台类

public class Stage {

private Singer singer;

private Dancer dancer;

public Singer getSinger() {

 return singer;

}

public void setSinger(Singer singer) {

 this.singer = singer;

}

public Dancer getDancer() {

 return dancer;

}

public void setDancer(Dancer dancer) {

 this.dancer = dancer;

}

}


2.2 配置bean并自动装配

package org.maoge.javaconfigssemble;

import org.springframework.beans.factory.annotation.Autowire;

import org.springframework.context.annotation.Bean;

import org.springframework.context.annotation.Configuration;

@Configuration // 该类是一个配置类,Spring需要扫描该类中bean

public class BeanConfiguration {

@Bean // 生成一个命名为daolang的bean

public Singer daolang() {

 Singer singer = new Singer();

 singer.setName("刀郎");

 return singer;

}

@Bean // 生成一个命名为liujia的bean

public Dancer liujia() {

 Dancer dancer = new Dancer();

 dancer.setName("刘迦");

 return dancer;

}

@Bean(autowire = Autowire.BY_TYPE) // 指定按类型自动装配该bean

public Stage stage() {

 Stage stage = new Stage();

 return stage;

}

}


2.3 测试

package org.maoge.javaconfigssemble;

import org.springframework.context.annotation.AnnotationConfigApplicationContext;

public class Main {

public static void main(String[] args) {

 AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(BeanConfiguration.class);

 Stage stage = (Stage) context.getBean("stage");

 System.out.println(stage.getSinger().getName());

 System.out.println(stage.getDancer().getName());

}

}

上面代码成功输入如下,证明按类型自动装配成功。


刀郎

刘迦


3. 按名称自动装配

我们将装配方式改为:@Bean(autowire = Autowire.BY_NAME)按名称,运行主类提示空指针,那是因为我们生成的bean命名分别为daolang、liujia,但是我们Stage类中的属性名称为singer、dancer,所以无法按名称自动装配。


我们可以将bean的id改为singer、dancer,或者将State类的属性改为daolang、liujia,这样名字匹配后,就可以自动装配了。


此处过于简单,不在具体出示代码。


4. 总结

装配确实比较繁琐,所以这三个章节我写起来也比较烦啊,但是这是Spring的基础,还是要在理解的基础上掌握吧。


为了让大家对Spring有一个全面的了解,我一直是同时介绍xml、注解、JavaConfig三种方式,因为我自己在学习的过程中发现,如果不对三种方式有一个全面的了解,经常会读不懂别人的代码,也读不懂自己公司的项目。


哈哈,其实就是三种具体实现方式,多写写就适应了。

相关文章
|
22天前
|
Java Spring
【Spring】方法注解@Bean,配置类扫描路径
@Bean方法注解,如何在同一个类下面定义多个Bean对象,配置扫描路径
159 73
|
22天前
|
存储 Java Spring
【Spring】获取Bean对象需要哪些注解
@Conntroller,@Service,@Repository,@Component,@Configuration,关于Bean对象的五个常用注解
|
22天前
|
存储 Java 应用服务中间件
【Spring】IoC和DI,控制反转,Bean对象的获取方式
IoC,DI,控制反转容器,Bean的基本常识,类注解@Controller,获取Bean对象的常用三种方式
|
22天前
|
Java Spring
【Spring配置相关】启动类为Current File,如何更改
问题场景:当我们切换类的界面的时候,重新启动的按钮是灰色的,不能使用,并且只有一个Current File 项目,下面介绍两种方法来解决这个问题。
|
22天前
|
Java Spring
【Spring配置】idea编码格式导致注解汉字无法保存
问题一:对于同一个项目,我们在使用idea的过程中,使用汉字注解完后,再打开该项目,汉字变成乱码问题二:本来a项目中,汉字注解调试好了,没有乱码了,但是创建出来的新的项目,写的注解又成乱码了。
|
22天前
|
Java Spring
【Spring配置】创建yml文件和properties或yml文件没有绿叶
本文主要针对,一个项目中怎么创建yml和properties两种不同文件,进行配置,和启动类没有绿叶标识进行解决。
|
27天前
|
XML Java 数据格式
Spring容器Bean之XML配置方式
通过对以上内容的掌握,开发人员可以灵活地使用Spring的XML配置方式来管理应用程序的Bean,提高代码的模块化和可维护性。
63 6
|
7月前
|
Java 开发者 Spring
解析Spring中Bean的生命周期
解析Spring中Bean的生命周期
66 2
|
7月前
|
XML druid Java
Spring5系列学习文章分享---第二篇(IOC的bean管理factory+Bean作用域与生命周期+自动装配+基于注解管理+外部属性管理之druid)
Spring5系列学习文章分享---第二篇(IOC的bean管理factory+Bean作用域与生命周期+自动装配+基于注解管理+外部属性管理之druid)
84 0
|
3月前
|
Java 开发者 Spring
Spring bean的生命周期详解!
本文详细解析Spring Bean的生命周期及其核心概念,并深入源码分析。Spring Bean是Spring框架的核心,由容器管理其生命周期。从实例化到销毁,共经历十个阶段,包括属性赋值、接口回调、初始化及销毁等。通过剖析`BeanFactory`、`ApplicationContext`等关键接口与类,帮助你深入了解Spring Bean的管理机制。希望本文能助你更好地掌握Spring Bean生命周期。
176 1