Spring 此位置错误不允许注释@Bean
我在一本书中读到,每当我们想要基于Java的配置并想要定义一个bean时,我们都会使用Spring 此位置错误不允许注释@Bean,spring,javabeans,Spring,Javabeans,我在一本书中读到,每当我们想要基于Java的配置并想要定义一个bean时,我们都会使用@bean注释。但是当我这样做时,我得到了一个错误:注释@Bean不允许用于这个位置。我的豆豆是: package com.mj.cchp.bean; import javax.validation.constraints.Digits; import javax.validation.constraints.NotNull; import org.springframework.context.annot
@bean
注释。但是当我这样做时,我得到了一个错误:注释@Bean不允许用于这个位置
。我的豆豆是:
package com.mj.cchp.bean;
import javax.validation.constraints.Digits;
import javax.validation.constraints.NotNull;
import org.springframework.context.annotation.Bean;
import com.mj.cchp.annotation.Email;
@Bean
public class UserBean {
@NotNull
@Email
private String email;
@NotNull
private String firstName;
@NotNull
private String lastName;
@Digits(fraction = 0, integer = 10)
private String phoneNo;
@NotNull
private String role;
public String getEmail() {
return email;
}
public String getFirstName() {
return firstName;
}
public String getLastName() {
return lastName;
}
public String getPhoneNo() {
return phoneNo;
}
public String getRole() {
return role;
}
public void setEmail(String email) {
this.email = email;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public void setPhoneNo(String phoneNo) {
this.phoneNo = phoneNo;
}
public void setRole(String role) {
this.role = role;
}
}
@Bean注释告诉Spring,用@Bean注释的方法将返回一个应该在Spring应用程序上下文中注册为Bean的对象 因此,您需要一个UserBeanConfig类,该类将使用@Configuration进行注释,该@Configuration将具有一个创建新bean的方法
@Configuration
public class UserBeanConfig {
@Bean
public UserBean userBean(){
return new UserBean();
}
}
在我看来,Spring的设计目的不是构造简单的域对象。
您应该使用Spring来引导服务/DAO等的依赖关系
因此,我建议避免域对象使用spring 注释
@Bean
用于定义要加载到Spring容器中的Bean。它类似于指定
<bean id="myId" class="..."/>
@Bean、@Configuration
和其他新引入的注释将完全执行Xml配置中的操作
@Configuration
@ComponentScan("...")
public class AppConfig{
@Bean
public MyBean myBean(){
return new MyBean();
}
}