Spring 使用注解配置 Bean
原文: https://howtodoinjava.com/spring5/core/spring-bean-java-config/
学习使用 Java 配置创建 Spring Bean,并使用任何独立应用程序的注解。 我们将学习如何在不扫描组件注解和使用@Bean
注解的情况下创建它。
1. 带有组件扫描的注解配置
使用组件扫描创建 bean 可以分两个步骤完成。
1.1. 用相应的组件注解为 bean 注解
我们将酌情使用以下四个注解之一。
@Component
@Repository
@Service
@Controller
阅读更多:Spring 组件注解
EmployeeManagerImpl.java
package com.howtodoinjava.spring.service.impl;
import org.springframework.stereotype.Service;
import com.howtodoinjava.spring.model.Employee;
import com.howtodoinjava.spring.service.EmployeeManager;
@Service
public class EmployeeManagerImpl implements EmployeeManager {
@Override
public Employee create() {
Employee emp = new Employee();
emp.setId(1);
emp.setName("Lokesh");
return emp;
}
}
1.2. 在@ComponentScan
注解中包含 bean 程序包
AppConfig.java
@Configuration
@ComponentScan(basePackages = "com.howtodoinjava.spring.service")
public class AppConfig {
}
1.3. 示例
package com.howtodoinjava.spring;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import com.howtodoinjava.spring.model.Employee;
import com.howtodoinjava.spring.service.EmployeeManager;
public class Main
{
public static void main( String[] args )
{
//Method 1
//ApplicationContext ctx = new AnnotationConfigApplicationContext(AppConfig.class);
//Method 2
AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext();
ctx.register(AppConfig.class);
ctx.refresh();
EmployeeManager empManager = ctx.getBean(EmployeeManager.class);
Employee emp = empManager.create();
System.out.println(emp);
}
}
程序输出:
Console
Employee [id=1, name=Lokesh]
2. 使用@Bean
和@Configuration
注解
要使用@Bean
注解创建 spring 应用程序内容,请使用以下步骤:
2.1. 创建 Java Bean 类(无需注解或任何其他操作)
EmployeeManagerImpl.java
public class EmployeeManagerImpl implements EmployeeManager {
@Override
public Employee create() {
Employee emp = new Employee();
emp.setId(1);
emp.setName("Lokesh");
return emp;
}
}
2.2. 在配置类中创建@Bean
注解方法
AppConfig.java
package com.howtodoinjava.spring;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import com.howtodoinjava.spring.service.EmployeeManager;
import com.howtodoinjava.spring.service.impl.EmployeeManagerImpl;
@Configuration
public class AppConfig {
@Bean
public EmployeeManager employeeManager() {
return new EmployeeManagerImpl();
}
}
2.3. 示例
package com.howtodoinjava.spring;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import com.howtodoinjava.spring.model.Employee;
import com.howtodoinjava.spring.service.EmployeeManager;
public class Main
{
public static void main( String[] args )
{
//Method 1
//ApplicationContext ctx = new AnnotationConfigApplicationContext(AppConfig.class);
//Method 2
AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext();
ctx.register(AppConfig.class);
ctx.refresh();
EmployeeManager empManager = ctx.getBean(EmployeeManager.class);
Employee emp = empManager.create();
System.out.println(emp);
}
}
程序输出:
Console
Employee [id=1, name=Lokesh]
这就是使用纯 Java 代码和注解创建 Spring bean 的两种简单方法。
学习愉快!