如何解决使用不同注解创建 Spring bean
我有一个这样的 bean 配置:
jest-svg-transformer
并且有很多类具有相同的配置,但是常量(NAME、PROPS、QUALIFIER)不同。我想过从构造函数(初始化常量字段)或重写方法传递它们,但它不起作用,因为注释只需要常量。
有没有办法创建一个基类之类的东西并共享这个 bean 初始化,只传递特定的常量?
解决方法
为了提高可重用性和最小化开发工作量,Spring 支持 bean 定义继承。
下面的示例代码解释了这个过程。在java配置文件中写入
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class AppConfig {
@Bean
public Employee employee() {
Employee employee = new Employee();
initCompany(employee);
employee.setLocation("XYZ");
return employee;
}
private void initCompany(Company company) {
company.setName("abc");
company.setAge(30);
}
}
在主类中运行写入
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
public class SpringDemo {
public static void main(String[] args) {
AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext();
ctx.register(AppConfig.class);
ctx.refresh();
Employee employee = ctx.getBean(Employee.class);
System.out.println(employee.getName());
System.out.println(employee.getLocation());
System.out.println(employee.getAge());
ctx.registerShutdownHook();
}
}
Output
abc
XYZ
30
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。