如何为班级编写@Bean? [复制]
Posted
技术标签:
【中文标题】如何为班级编写@Bean? [复制]【英文标题】:How to write @Bean for a class? [duplicate] 【发布时间】:2019-11-07 06:21:36 【问题描述】:以下是我的员工类。如果我在第 1 行、第 2 行或第 3 行写入 @Bean 注释,则会引发错误。
它只允许 @Bean 注解到方法名。 为什么?
import org.springframework.context.annotation.Bean;
//line 1
public class Employee
int id;
String name;
// line 2
public Employee(int id, String name)
this.id = id;
this.name = name;
//line 3
public Employee()
@Bean
public void showCurrentEmployee()
System.out.println(this.id + " " + this.name);
正如春天世界所说; Bean 作用域是一个单例。这适用于哪里? @Bean 方法如何保存单例实例以及什么?
如果不能将@Bean 赋予类名,那么以下内容如何有效?
<bean name="emp" class="com.myProj.Employee">
<property name="id">
<value>20</value>
</property>
<property name="name">
<value>John</value>
</property>
</bean>
【问题讨论】:
docs.spring.io/spring-javaconfig/docs/1.0.0.m3/reference/html/… 看看这个文件。它会帮助你 请不要链接到不再相关的文档。 Spring Java Config 项目已经死了好几年了。它的一部分(和经验教训)已被纳入 Spring 本身。 Bean 作用域在 Spring 中默认是单例的。这意味着只存在这个类的一个实例。 Spring 在第一次使用时创建它。它将由 Spring 管理,并在每次重用时注入。 @Elio,但我的 Employee 类可以有多个实例。 我不确定您需要的是@Bean
还是@Entity
?在您的情况下,Empoyee 类是什么,它是数据库中的条目还是服务?请参阅这两个链接,了解 Spring 中 @Bean
的范围。它们可能有助于更好地了解您的需求:baeldung.com/spring-bean-scopes 或 tutorialspoint.com/spring/spring_bean_scopes.htm
【参考方案1】:
@Bean 注解只能在 Spring 配置类中使用。此类应使用@Configuration 注解进行注解
使用属性注入,@Value 注释可能会有所帮助。
@Configuration
public class ConfigClass
@Bean
public BeanClassOne beanOne(@Value("20") Integer intValue)
return new BeanClassOne(intValue);
@Bean
public BeanClassTwo beanTwo()
return new BeanClassTwo();
@Bean
public BeanClassThree beanThree()
return new BeanClassThree();
另一种从类中制作 Spring bean 以使用 @Service 或 @Component 注释对其进行注释的方法
@Service
public class BeanClass
@Value("String value")
privat String strField;
// your bean methods
更多信息在这里 https://www.tutorialspoint.com/spring/spring_java_based_configuration.htm
【讨论】:
所以我上面的实现是错误的? 您的第三个返回类型是 BeanClassThree 但实际上返回的是 BeanClass。 @Rashin 已修复。谢谢。 @user2746466 是的。您错误地使用了 Bean 注释。此注解类似于 XML spring 配置中的以上是关于如何为班级编写@Bean? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
如何为 Spring 托管 bean 编写 Junit 测试用例?
如何为需要 4 个数字输入的 C 程序编写 Bash 脚本? [复制]
我们如何为 Firebase 存储编写依赖于 Firebase 实时数据库中的值的安全规则? [复制]