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. Python_Modbus_RTU_通讯Demo

    之前利用Python进行Modbus_TCP进行数据接收,本次需要利用串口进行数据传输,学习Modbus_RTU的简单实现 首先要在创建两个虚拟串口,利用VSPD工具即可.在一台电脑上实现数据的发送和 ...

  2. Centos7.5 安装JDK1.8 步骤

    1.下载JDK安装包 先下载好JDK1.8 的安装包,下载地址:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downlo ...

  3. C#获取ip

    string name = Dns.GetHostName(); string ip = Dns.GetHostAddresses(name).First().ToString();

  4. (二)Spring框架之JDBC的基本使用(p6spy插件的使用)

    案例一: 用Spring IOC方式使用JDBC Test_2.java package jdbc; import java.lang.Thread.State; import java.sql.Co ...

  5. IQueryable vs. IEnumerable

    IQueryable<T> extends the IEnumerable<T> interface IEnumerable<T> is great for wor ...

  6. VBA学习资料分享-6

    从网上抓取数据到EXCEL中是VBA的一个常用之处,今天分享下VBA网抓的一些套路,主要有以下几种: 第一种:msxml2.xmlhttp/Microsoft.XMLHTTP/WinHttp.WinH ...

  7. 数据结构与算法(周测2-AVL树)

    判断题 1.The inorder traversal sequence of an AVL tree must be in sorted (non-decreasing) order.      T ...

  8. Navicat MySql 连不上 本地开发环境 MySQL8.0

    原因:   新版mysql数据库的加密方式改变,进而导致Navicat连接输入的密码不能与安装时输入的密码匹配,那如何解决这个问题呢?很简单,只需要一句代码的事儿~ 1.打开MySQL 8.0 Com ...

  9. VisualSVN 关于权限(第2篇)

    最终的答案: 仓库本身不能给他增加访问权限,必须增加否则连不上,不增加的时候 他默认就是No Access: 仓库本身可以理解为:祖宗,他是访问权限的根基.子目录会继承他的权限. 那么既然必须给他增加 ...

  10. java轻松玩转httpget和httppost

    废话不多少说,直接上代码 //get请求 public static void HttpClientGet(String url) throws Exception { // 获取http客户端 Cl ...