在配置 spring boot 中定义一个 bean 名称
Define a bean name in configuration spring boot
我的 spring 引导应用程序因以下错误而无法启动:A component required a bean named 'sessionScopedLdapUser' that could not be found
我的 bean 定义在这个 class:
@Configuration
public class RestTemplateClient {
Logger logger = LoggerFactory.getLogger(SwitchController.class);
@Bean
public RestTemplate restTemplate() {
return new RestTemplate();
}
@Bean("sessionScopedLdapUser"); /************** <----
@Scope(value = WebApplicationContext.SCOPE_SESSION, proxyMode = ScopedProxyMode.TARGET_CLASS)
public LdapUser requestScopedBean() {
logger.info("LdapUser bean instance created");
return new LdapUser();
}
我在我的服务中使用了这个 bean class:
@Service
public class IsimRestApiImpl implements IsimRestApiService{
@Autowired
private RestTemplate restTemplate;
@Resource(name = "sessionScopedLdapUser")
LdapUser sessionScopedLdapUser;
我不确定我在配置中做错了什么。如果我在我的配置中添加 bean 名称(箭头所在的位置),我会得到 Annotations are not allowed here.
这可能与您的 bean 的作用域有关吗?我也觉得你不应该给这个豆子起个名字。如果你只做一个 LdapUser 类型的 bean,我认为没有必要 ...
我会尝试从 bean 中删除名称和范围,然后查看您的应用程序是否启动。在添加一些选项并弄清楚到底哪里出了问题之前。
我的 spring 引导应用程序因以下错误而无法启动:A component required a bean named 'sessionScopedLdapUser' that could not be found
我的 bean 定义在这个 class:
@Configuration
public class RestTemplateClient {
Logger logger = LoggerFactory.getLogger(SwitchController.class);
@Bean
public RestTemplate restTemplate() {
return new RestTemplate();
}
@Bean("sessionScopedLdapUser"); /************** <----
@Scope(value = WebApplicationContext.SCOPE_SESSION, proxyMode = ScopedProxyMode.TARGET_CLASS)
public LdapUser requestScopedBean() {
logger.info("LdapUser bean instance created");
return new LdapUser();
}
我在我的服务中使用了这个 bean class:
@Service
public class IsimRestApiImpl implements IsimRestApiService{
@Autowired
private RestTemplate restTemplate;
@Resource(name = "sessionScopedLdapUser")
LdapUser sessionScopedLdapUser;
我不确定我在配置中做错了什么。如果我在我的配置中添加 bean 名称(箭头所在的位置),我会得到 Annotations are not allowed here.
这可能与您的 bean 的作用域有关吗?我也觉得你不应该给这个豆子起个名字。如果你只做一个 LdapUser 类型的 bean,我认为没有必要 ...
我会尝试从 bean 中删除名称和范围,然后查看您的应用程序是否启动。在添加一些选项并弄清楚到底哪里出了问题之前。