Spring 使用注解配置 Bean

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 的两种简单方法。

学习愉快!

下载源码