2、组件注册-@Configuration&@Bean给容器中注册组件

2.1 创建maven项目 spring-annotation

pom.xml文件添加 spring-context 依赖

<!-- https://mvnrepository.com/artifact/org.springframework/spring-context -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>

2.2 xml方式 注册Bean

2.2.1 新建 Pension.java 实体类,并创建getter、setter、无参、全参、tostring()方法等
package com.hw.springannotation.beans;

/**
* @Description TODO
* @Author hw
* @Date 2018/11/27 17:21
* @Version 1.0
*/
public class Pension { private String name;
private Integer age; public Pension() {
} public Pension(String name, Integer age) {
this.name = name;
this.age = age;
} 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;
} @Override
public String toString() {
return "Pension{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
2.2.2 resource目录下新建 beans.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <bean id="persion" class="com.hw.springannotation.beans.Persion">
<property name="name" value="hw"></property>
<property name="age" value="18"></property>
</bean>
</beans>
2.2.3 创建MainTest 测试类,运行,打印pension信息。
public class MainTest {
public static void main(String[] args) {
/**
* 配置文件的方式
*/
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("beans.xml");
Pension pension = (Pension) applicationContext.getBean("pension");
System.out.println(pension);
}
}

2.3 注解方式注册组件

2.3.1 添加MainConfig.class 配置类,如下:
package com.hw.springannotation.config;

import com.hw.springannotation.beans.Pension;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; /**
* @Description 配置类=配置文件
* @Author hw
* @Date 2018/11/27 17:29
* @Version 1.0
*/
@Configuration // 告诉spring 这是一个配置类
public class MainConfig { @Bean(value = "pension01") // 给容器中注册一个 Bean ;类型为返回值类型,id默认为方法名,
public Pension pension() {
return new Pension("hongwei", 24);
}
}
2.3.2 创建test测试类,运行
package com.hw.springannotation.test;

import com.hw.springannotation.beans.Pension;
import com.hw.springannotation.config.MainConfig;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext; /**
* @Description TODO
* @Author hw
* @Date 2018/11/27 17:26
* @Version 1.0
*/
public class MainTest {
public static void main(String[] args) { /**
* 注解方式
*/
ApplicationContext applicationContext = new AnnotationConfigApplicationContext(MainConfig.class);
Pension pension = applicationContext.getBean(Pension.class);
System.out.println(pension); String[] beanNamesForType = applicationContext.getBeanNamesForType(Pension.class);
for (String s : beanNamesForType) {
System.out.println(s);
} }
}

2.4 完整源码

Spring-Annotation

2、组件注册-@Configuration&@Bean给容器中注册组件的更多相关文章

  1. 一、Spring之组件注册-@Configuration&@Bean给容器中注册组件

    xml配置方式 首先我们创建一个实体类Person public class Person { private String name; private Integer age; private St ...

  2. 【Spring注解开发】组件注册-使用@Configuration和@Bean给容器中注册组件

    写在前面 在之前的Spring版本中,我们只能通过写XML配置文件来定义我们的Bean,XML配置不仅繁琐,而且很容易出错,稍有不慎就会导致编写的应用程序各种报错,排查半天,发现是XML文件配置不对! ...

  3. 向Spring容器中注册组件的方法汇总小结

    1.通过xml定义 <bean class=""> <property name="" value=""></ ...

  4. spring 给容器中注册组件的几种方式

    1.@Bean 导入第三方的类或包的组件 2.包扫描+组件的标注注解(@ComponentScan: @Controller,@service,@Reponsitory,@Componet), 自己写 ...

  5. spring注解开发:容器中注册组件方式

    1.包扫描+组件标注注解 使用到的注解如下,主要针对自己写的类 @Controller @Service @Repository @Component @ComponentScan 参考 spring ...

  6. 【Spring注解驱动开发】在@Import注解中使用ImportBeanDefinitionRegistrar向容器中注册bean

    写在前面 在前面的文章中,我们学习了如何使用@Import注解向Spring容器中导入bean,可以使用@Import注解快速向容器中导入bean,小伙伴们可以参见<[Spring注解驱动开发] ...

  7. Spring注解驱动开发04(给容器中注册组件的方式)

    给容器中注册组件的方式 1. 组件注解标注 + 包扫描(适用于自己写的类) //控制层组件 @Controller public class PersonController { } //业务逻辑层组 ...

  8. 【String注解驱动开发】如何按照条件向Spring容器中注册bean?这次我懂了!!

    写在前面 当bean是单实例,并且没有设置懒加载时,Spring容器启动时,就会实例化bean,并将bean注册到IOC容器中,以后每次从IOC容器中获取bean时,直接返回IOC容器中的bean,不 ...

  9. 【String注解驱动开发】面试官让我说说:如何使用FactoryBean向Spring容器中注册bean?

    写在前面 在前面的文章中,我们知道可以通过多种方式向Spring容器中注册bean.可以使用@Configuration结合@Bean向Spring容器中注册bean:可以按照条件向Spring容器中 ...

随机推荐

  1. SecureCRT 配色方案

    整体效果: 一:Options -- Global Options 1.Normal colors     2.Bold colors 二 :Options -- Session Options 1. ...

  2. PHP和Memcached - Memcached的介绍及常用命令

    1.什么是Memcached 自由开源的,高性能,分布式内存对象缓存系统,分布式是基于客户的缓存系统,服务器之间是不相互通讯的. 2.Memcached的使用场景 储存session. 缓存数据. 解 ...

  3. Oracle数据库——查询所有用户

    查询数据库所有用户(ALL_USERS)的用户名,用户编号,创建日期 默认应该有36个用户 SELECT * FROM ALL_USERS; 查看ALL_USERS的结构 DESC ALL_USERS ...

  4. 插入排序——C语言

    插入排序 插入排序(Insertion-Sort)的算法描述是一种简单直观的排序算法.它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入.  (每步将一个待 ...

  5. Ubuntu16.04 换源(或者404 Not Found问题)

    当执行sudo apt-get update或者sudo apt-get install命令时,出现以下两个问题: “apt-get 404 Not Found Package Repository ...

  6. C# 第一次做项目。一些经验总结。

    这是我的第一篇博客,写得不好望大家多多包涵. 初学C#2个多月,拿着老师给的项目,试着做了做,发现自己在编程方面有很多陋习与编程知识方面的不足. 首先是没有遵守某一个设计模式,这导致我想到哪里就做到了 ...

  7. java毫秒级别定时器

    java每100毫秒执行一次 //每100毫秒秒执行一次 @Scheduled(fixedRate = 100) public void testScheduler() { System.out.pr ...

  8. flex 布局方式

    开始啦 1. flex-direction 有关主轴的对齐方式 column 自上到下 row 自左到右 -->默认值 row-reverse 自右到左 column-reverse 自下到上 ...

  9. 升级xcode11&ios13的坑

    Swift Packages 目前Pod跟SPM的兼容还没做好,配置好SPM后,Pod不能进行正常更新,先配置好Pod再集成SPM则没有问题 Pod以后的更新可能会解决这个问题,也会有越来越多的库支持 ...

  10. 案例:selenium实现登录处理弹窗

    func.py https://www.cnblogs.com/andy9468/p/10899508.html main.py中 # 导入webdriver import os import tim ...