我将以一个例子来解释这种情况。例如,我有一个Settings类,我在那里配置一些主机名,端口信息。像:
public class Settings {
@Inject
private User user;
在guice中我可以用以下方式处理:
private Injector injector;
public void setInjector(){
injector=Guice.createInjector( new AbstractModule(){
@Override
protected void configure(){
bind( User.class ).toInstance(user);
}
}
}
如果有人使用@Inject User user
,那么我的代码只会向我提供我的实例,我的意思是只有一个用户实例,只要开发人员使用Inject创建用户实例。
我怎样才能在春天达到这个目的,有人可以解释一下吗?
请注意:我只知道有一个@Autowired注释,但如何实现这一点,令人困惑:S
提前致谢
顺便说一句:我无法理解提到here
的观点答案 0 :(得分:0)
如果这是一个Web应用程序,您希望使用类似Spring的安全性,并使用会话范围的对象来控制提供给表单的用户。
否则,你可以这样做:
@Configuration
public class XYZConfig {
@Bean(name="User")
public User getUser() {
return new User();
}
}
在春季应用程序环境中,您需要执行以下操作:
<context:component-scan base-package="com.xyz" />
Spring boot有很多可能需要做的事情的基本样本: