在启动时加载Applicationcontext(非Web应用程序)

时间:2015-03-22 15:39:08

标签: java spring

我正在创建一个使用Spring Remoting的应用程序。

我有我的applicationContext.xml,我想在纯代码配置中迁移它。

对不起,我的主要课程是:

ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");

我想在需要时“集中”加载和@Inject我的bean,而不使用:

UsersRepository userRepositories = context.getBean(UsersRepository.class);

对于WebApplication,我见过WebApplicationInitializer。

但如果应用程序不是基于Web的(没有web.xml ecc)

,该怎么办?

1 个答案:

答案 0 :(得分:0)

所以,我不能保证这是完全准确的,但这是我如何做到这一点。

在您的服务类(或任何使用UserRepository的类)中,您希望将其作为构造函数的参数并使其成为全局变量,在构造函数上方添加@Inject标记。这是一个例子。

public class UserService {
    private UserRepository userRepository;

    @Inject
    public UserService(UserRepository userRepository){
        this.userRepository = userRepository
    }
}

就像我说的,我就是这样做的,我们可以从类中的任何方法中自由访问存储库。希望这会有所帮助。