前言

接上节我们学习隐式的自动装配bean,今天我们学习用Java方式来配置bean!

一、如何用Java实现配置Bean

我们需要使用JavaConfig,一个配置类!

二、使用步骤

1.需要的实体类

package com.shan.pojo;import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;@Component //这个类被Spring接管了,注册到了容器中
public class User {@Value("小黑神")  //给属性注入值private String name;public String getName() {return name;}//public void setName(String name) {this.name = name;}@Overridepublic String toString() {return "User{" +"name='" + name + '\'' +'}';}}

2.需要一个JavaConfig(可以理解为一个配置类)

package com.shan.config;import com.shan.pojo.User;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;//@Configuration 代表他是一个配置类,相当于beans.xml
@Configuration
@ComponentScan("com.shan.pojo")
@Import(MyConfig2.class)
public class MyConfig {//这个方法的名字就是id的属性//方法的返回值,就相当于bean的class属性@Beanpublic User user(){return new User();}}
package com.shan.config;import com.shan.pojo.User;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;//@Configuration 代表他是一个配置类,相当于beans.xml
@Configuration
@ComponentScan("com.shan.pojo")
@Import(MyConfig2.class)
public class MyConfig {//这个方法的名字就是id的属性//方法的返回值,就相当于bean的class属性@Beanpublic User user(){return new User();}}

@Configuration 代表他是一个配置类,相当于beans.xml
这个也会被Spring容器托管,注册到容器中,因为他本来就是一个@Component,
@Import(MyConfig2.class)相当于导入的作用,将Config2的配置导入到总的那个配置类中!
@Bean 注册一个Bean,就相当于之前的bean标签

测试类

import com.shan.config.MyConfig;
import com.shan.pojo.User;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;public class MyTest {public static void main(String[] args) {AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(MyConfig.class);User user = context.getBean("user", User.class);System.out.println(user.toString());System.out.println(user.getName());}}

如果完全使用了配置类方式去做,我们就只能通过AnnotationConfigApplicationContext上下文来获取容器,通过配置类的class去加载!!!

总结

这种方式在我们学习Spring时理解就行,在将来SpringBoot中随处可见。
我们现在完全不需要xml配置文件去做了,全权交给Java来做。
xml配置文件与注解:

作者有话说

博客创作不易,希望看到这里的读者动动你的小手点个赞,如果喜欢的小伙伴可以一键三连,作者大大在这里给大家谢谢了。

Spring学习7之自动装配Bean03相关推荐

  1. Spring学习5之自动装配Bean01

    前言 之前我们都是手动装配Bean,但是Spring里面有一个自动装配的方法! 一.自动装配是什么? 自动装配是Spring满足bean依赖一种方式! Spring会在上下文中自动寻找,并自动给bea ...

  2. Spring学习6之自动装配Bean02

    前言 接上节我们使用配置文件进行了显示的配置,这节我们学习隐式的自动装配bean[重要]! 一.隐式的自动装配bean[重要] 就是使用注解进行配置,Spring2.5就支持注解开发了!!! 使用注解 ...

  3. Struts2与Spring集成中的自动装配策略

    http://www.blogjava.net/jeffma/archive/2010/11/30/339414.html 自动装配即bean之间的依赖关系无需手动配置. 1.    与自动装配有关的 ...

  4. Spring之Bean的自动装配

    Spring从入门到精通–(4)Spring之Bean的自动装配 作者:进击攻城狮 个人主页:欢迎访问我的主页 首发时间:2022年8月5日星期五 订阅专栏:Spring入门到精通 个人信条:星光不问 ...

  5. Spring依赖注入与自动装配

    Spring依赖注入与自动装配 首先推荐狂神说的Spring讲义 1.Beans.xml作用 简而言之,我们通过在beans.xml中进行配置,将各种类交给spring来管理. 2.依赖注入 推荐狂神 ...

  6. Spring基于注解的自动装配

    Spring基于注解的自动装配 基于XML的自动装配是在配置文件的bean里设置autowire属性,有byType,byName的方式.而基于注解的自动装配同样是这样只不过我们直接在成员变量上直接标 ...

  7. Java(Spring)学习笔记--->自动装配(autowire)

    这篇文章笔者和大家聊一聊自动装配,首先我们学习它的时候我们应该知道何为自动装配? 举个例子:一个人他有一只狗和一只猫,他有的 这两个动物就相当于这个人的名字一样,写在一个personn类中并且生成无参 ...

  8. 详解Spring中Bean的自动装配~

    目录 1. 环境搭建 2. byName.byType 3. 使用注解实现自动装配 @Autowired @Resource 小结 自动装配是Spring满足bean依赖的一种方式 Spring会在上 ...

  9. Spring学习系列(二) 自动化装配Bean

    一.Spring装配-自动化装配 @Component和@ComponentScan 通过spring注解(@Component)来表明该类会作为组件类,并告知Spring要为这类创建bean,不过组 ...

最新文章

  1. 干货 | “青年AI自强计划项目”首节讲座视频、课件分享
  2. 可在广域网部署运行的QQ高仿版 -- GG叽叽(开源)
  3. linux过滤脚本中的字段,Shell脚本中常用的文本过滤命令
  4. TensorFlow MNIST (Softmax)
  5. SparkException: Python worker failed to connect back
  6. [IT业界] 网盘纷纷停止服务,下一个是谁?
  7. cassss服务未启动_电梯启动死机故障处理方法
  8. Android开发之和风天气篇:1、获取天气信息
  9. 嵌入式linux屏幕录制,在MAC系统上进行屏幕录制
  10. 查看不同用户使用GPU的情况
  11. java 拦截器 排除_java – Spring MVC Interceptor排除HTTP方法的路径
  12. mysql时间戳转为日期格式_mysql时间戳与日期格式的相互转换
  13. android 10.0 Camera2 去掉后置摄像头 仅支持前置摄像头功能
  14. stm32学习之定时器中断时间设置与计算
  15. sql not like 数据遗漏
  16. 通过PyFMI读取FMU文件及PyFMI的安装教程
  17. 如何在linux系统中打开巨型帧
  18. 二手房买卖中“跳单”行为之探讨
  19. vue项目中使用可选链 ( ?. )和双问号 ( ??)详解
  20. Java基础2 -- 判断语句

热门文章

  1. LeetCode-数组-35. 搜索插入位置
  2. 通俗易懂的Word Embeddings
  3. 分布式爬虫系统设计、实现与实战:爬取京东、苏宁易购全网手机商品数据+MySQL、HBase存储...
  4. 百度咋做长文本去重(一分钟系列)--转
  5. Re:从 0 开始的微服务架构--(三)微服务架构 API 的开发与治理--转
  6. Awk by Example--转载
  7. Spring 的优秀工具类盘点---转
  8. 李宏毅深度学习——分类
  9. 【大数据-Hadoop】Hadoop架构
  10. JS中map()与forEach()的用法