springmvc@Configuration类构造函数
作为SpringMVC初始化的一部分,我需要运行一次操作(只是在第三方库上调用一个方法)作为设置操作。我在SpringMVC环境中工作,在那里我无法真正控制web.xml或任何东西,因此我无法添加servlet上下文侦听器或任何东西。我试图实现一个springmvc@Configuration类构造函数,spring,spring-mvc,Spring,Spring Mvc,作为SpringMVC初始化的一部分,我需要运行一次操作(只是在第三方库上调用一个方法)作为设置操作。我在SpringMVC环境中工作,在那里我无法真正控制web.xml或任何东西,因此我无法添加servlet上下文侦听器或任何东西。我试图实现一个WebApplicationInitializer,但它似乎从未被调用(不知道为什么,也不知道如何进一步尝试和调试) 如果我用@Configuration注释一个类,它确实会被创建,因此我想知道是否可以使用该类的构造函数来执行该设置操作(调用第三方设置
WebApplicationInitializer
,但它似乎从未被调用(不知道为什么,也不知道如何进一步尝试和调试)
如果我用@Configuration
注释一个类,它确实会被创建,因此我想知道是否可以使用该类的构造函数来执行该设置操作(调用第三方设置方法)。这样做合适/安全吗?这类事情还有其他选择吗?我是春天的新手,所以我可能只是错过了这类事情的意义
谢谢配置类将是包含一些初始化逻辑的合适位置。例如,如果您实现了接口,您可以将其放置在构造函数中,方法用
@PostConstruct
或afterPropertiesSet()注释。不同之处在于,构造函数代码将在实例化配置类中的bean之前被调用,因此如果您的初始化代码依赖于某些SpringBean,请使用@PostConstruct
/InitializingBean
方法
例如:
@Configuration
public class Config {
@PostConstruct
public void initialize() {
// Run some action
}
}
您可以在@Configuration注释类中声明@Autowired init()方法,并在该方法中执行任何初始化操作。您的第三方库似乎脱离了Spring环境,这可能是您面临的问题。当我这样做时,我在控制台中得到以下警告:警告:自动连线注释应用于具有实际参数的方法
是否有关于自动连线init
方法的特定文档?我不确定为什么会出现警告,但您肯定实现了@Bohuslav的解决方案。