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. NoSQL数据库一MongoDB基本使用

    如今的网站对数据存储要求越来越灵活,在这种需求下 NoSQL 也就是非关系数据库越来越流行.所谓非关系数据库,是指不使用 SQL 语言进行数据操作的数据库的统称.这类数据库存储数据时没有固定的模式,不 ...

  2. Ribbon【入门】

    公共依赖: <parent> <groupId>org.springframework.boot</groupId> <artifactId>sprin ...

  3. Excel关联匹配函数

    1.=VLOOKUP (lookup_value, table_array, col_index_num, [range_lookup]) ​ lookup_value 相当于python中的键,用来 ...

  4. Python--yaml文件操作

    一.yaml文件的使用注意事项 加载yaml文件函数: data = yaml.load(f)  (我在实际测试中用的是yaml.safe_load(f)可以正常,用yaml.load(f)会报错因为 ...

  5. Mish:一个新的SOTA激活函数,ReLU的继任者

    Mish:一个新的SOTA激活函数,ReLU的继任者 CVer 昨天   以下文章来源于AI公园 ,作者ronghuaiyang AI公园 专注分享干货的AI公众号,图像处理,NLP,深度学习,机器学 ...

  6. Android 使用自定义Drawable 设置圆角矩形或者圆形图片

    转自  Android Drawable 那些不为人知的高效用法 本文出自:[张鸿洋的博客] http://blog.csdn.net/lmj623565791/article/details/437 ...

  7. SQL优化中的重要概念:死锁

    原文:SQL优化中的重要概念:死锁 上面几篇文章讲到 事务.锁定.阻塞,最后还有一种比较极端的情况,就是死锁,这也是锁定.阻塞的一种情况. 死锁是当两个事务分别锁定了资源,而又继续请求对方已获取的资源 ...

  8. Spring Boot 使用 @Scheduled 注解创建定时任务

    在项目开发中我们经常需要一些定时任务来处理一些特殊的任务,比如定时检查订单的状态.定时同步数据等等. 在 Spring Boot 中使用 @Scheduled 注解创建定时任务非常简单,只需要两步操作 ...

  9. solr-jd

    springMVC.xml <?xml version="1.0" encoding="UTF-8"?> <beans xmlns=" ...

  10. crunch离线密码生成

     Crunch是一种创建密码字典工具,按照指定的规则生成密码字典,可以灵活的制定自己的字典文件. 一.Crunch为kali自带工具之一在kali环境下进行,默认基于26个小写英文字母. 语法:cru ...