Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring 此位置错误不允许注释@Bean_Spring_Javabeans - Fatal编程技术网

Spring 此位置错误不允许注释@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

我在一本书中读到,每当我们想要基于Java的配置并想要定义一个bean时,我们都会使用
@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();
   }
}