我想创建一个基于Spring Boot构建的简单应用程序。我对框架没有经验,这个问题超出了我的范围。
我想在我的应用中使用安全模块,尤其是org.springframework.security.authentication.encoding.ShaPasswordEncoder
类。我想把它作为一个bean自动装配。
如何在Spring Boot中定义它?例如,this answer解释了如何在“常规”Spring中使用它 - 在XML文件中定义bean。但是,当我阅读Boot概述时,它表示不需要XML设置,因此是否有可能以某种方式在代码中执行此操作,而不是配置?什么是Boot-ish方式?
我试过使用这段代码来获取编码器类。
@Autowired
private ShaPasswordEncoder passwordEncoder;
但我得到一个例外:org.springframework.beans.factory.NoSuchBeanDefinitionException
- 它没有定义,但我该如何定义呢?
由于
答案 0 :(得分:2)
bean可以像这样定义代码:
using (StreamReader sr = new StreamReader(sFile))
{
XmlSerializer deserializer = new XmlSerializer(typeof(List<Lijst_item>), new XmlRootAttribute("lijst"));
var Test = (List<Lijst_item>)deserializer.Deserialize(sr);
}
此方法将创建一个名为“passwordEncoder”的bean,该bean将由Spring管理。它相当于XML样式的
@Bean
public ShaPasswordEncoder passwordEncoder() {
return new ShaPasswordEncoder();
}
您可以将此方法放在<bean class="org.springframework.security.authentication.encoding.ShaPasswordEncoder" id="passwordEncoder" />
- 带注释的类或任何使用@SpringBootApplication
注释的类中。