通过 @Configuration 注解将 bean 注册到 Spring 容器中
XMl 方式注册 bean
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
<bean id="user" class="com.demon.bean.User">
<property name="name" value="Demon-HY" />
<property name="age" value="18" />
</bean>
</beans>
@Configuration 方式注册bean
package com.demon.spring.annotation.config;
import com.demon.spring.annotation.bean.User;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/**
* 配置类
* @author Demon-HY
* @date 2019-12-9
*/
@Configuration
public class Config {
/**
* 给 Spring 容器注册一个 bean, bean 的 id 默认是方法名</br>
* 可以手动指定id: @Bean("方法名")
*/
@Bean("user")
public User user() {
return new User("Demon-HY", 18);
}
}
用到的 User 对象
/**
* @author Demon-HY
* @date 2019-12-9
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
public class User {
private String name;
private Integer age;
}
这里用到了 lombak 注解简化代码
<!--简化代码-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.20</version>
</dependency>
编写测试用例
需要导入 Spring 核心容器的包
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>4.3.9.RELEASE</version>
</dependency>
测试用例
package com.demon;
import com.demon.bean.User;
import com.demon.config.Config;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
/**
* @author Demon-HY
* @date 2019-12-9
*/
public class MainTest {
public static void main(String[] args) {
// xml 方式生成 Spring 上下文
// ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");
// User user = (User) context.getBean("user");
// System.out.println(user);
// 通过注解方式生成 Spring 上下文
AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(Config.class);
// 通过ID获取用户
User user2 = (User) context.getBean("user");
System.out.println(user2);
// 通过类名获取用户
User user3 = context.getBean(User.class);
System.out.println(user3);
}
}
咖啡小馆
QQ群: 823971061 点击按钮入群