Java Spring依赖项注入中的Guice绑定到实例相等
我会举例说明情况。例如,我有一个设置类,我正在那里配置一些主机名、端口信息。比如:Java Spring依赖项注入中的Guice绑定到实例相等,java,spring,dependency-injection,guice,Java,Spring,Dependency Injection,Guice,我会举例说明情况。例如,我有一个设置类,我正在那里配置一些主机名、端口信息。比如: public class Settings { @Inject private User user; 在guice中,我可以通过以下方式处理此问题: private Injector injector; public void setInjector(){ injector=Guice.createInjector( new AbstractModule(){ @Override p
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
时,我的代码只给他我的实例,我的意思是只有一个用户实例,开发者用Inject创建用户实例。
我怎样才能在春天做到这一点?有人能解释一下吗
注意:我只知道有一个@Autowired注释,但如何实现这一点令人困惑:s
提前谢谢
顺便说一句:我无法理解上面提到的要点。如果这是一个web应用程序,您需要使用类似Spring security的东西,并使用会话范围的对象来控制提供给表单的用户 否则,你可以这样做:
@Configuration
public class XYZConfig {
@Bean(name="User")
public User getUser() {
return new User();
}
}
在spring应用程序上下文中,您需要执行以下操作:
<context:component-scan base-package="com.xyz" />
Spring boot提供了许多您可能需要执行的基本示例:
<context:component-scan base-package="com.xyz" />
是否希望Spring创建用户对象的多个实例?如果是,请尝试“@Inject”和“@Dependent”。我不认为这是你想要的。如果您希望在任何地方都使用相同的用户,那么您需要在某个地方定义bean,在java config类中或通过xml,java config需要@Configuration和一些用于在xml中扫描的设置。请澄清您在寻找什么,我可能会提供帮助。我总是希望在任何地方都使用相同的已配置用户对象,请您详细说明@Configuration以及如何使用。我刚试过,但做不到。我明天会测试,但我会将新用户的代码更改为我配置的用户实例。但是在那之后,我如何检索这个用户实例呢?使用@Autowired annotation?它应该与“@Inject”一起使用,Spring将其视为与“@Autowired”相同。您确实不希望每个登录的用户都是相同的,但这应该可以让您开始。至少,您需要使用“@Scope(value=“session”)对getUser方法进行注释“,但您需要设置一个用户服务和所有内容,但我可能会为您的问题指定约束条件。事实上,如果是一个SpringWeb应用程序,请使用SpringSecurity。它不是一个web应用程序!!我应该给我的用户类添加一些特殊的东西吗?比如@Service或其他什么?当我在其他地方使用@Autowired User类时,它是空的!