SpringXML到java配置:如何转换嵌套的XMLBean定义
----过滤器配置更新---- 如果您使用嵌套bean进行过滤器配置(如我的例子),那么无论您在过滤器上设置了什么属性,如果您只使用setter,它们都将为null(不知道为什么,如果有人想解释,请解释) 要解决此问题,请创建扩展GenericFilterBean的筛选器(@Component),并在其中设置属性。然后@Autowire将其连接到您的配置,并像往常一样在过滤器注册时使用setter。**SpringXML到java配置:如何转换嵌套的XMLBean定义,java,spring,configuration,Java,Spring,Configuration,----过滤器配置更新---- 如果您使用嵌套bean进行过滤器配置(如我的例子),那么无论您在过滤器上设置了什么属性,如果您只使用setter,它们都将为null(不知道为什么,如果有人想解释,请解释) 要解决此问题,请创建扩展GenericFilterBean的筛选器(@Component),并在其中设置属性。然后@Autowire将其连接到您的配置,并像往常一样在过滤器注册时使用setter。** 如果您有简单的配置属性(例如String),那么您可以将Map与init参数一起使用,并在F
如果您有简单的配置属性(例如String),那么您可以将Map与init参数一起使用,并在FilterRegistration bean上设置它。因为它是一个仅在这个特定外部bean中使用的bean,您只需将其转换为实例创建并设置适当的属性即可 您不能使用
Filter
接口,因为它没有票证验证器的setter
改用AbstractTicketValidationFilter
:
@Bean
FilterRegistrationBean ticketValidationFilter(){
Filter ticketValidationFilter = new
org.jasig.cas.client.validation.Cas20ProxyReceivingTicketValidationFilter();
FilterRegistrationBean frb = new FilterRegistrationBean();
frb.addUrlPatterns("/*");
frb.setFilter(ticketValidationFilter);
// ticket Validator somewhere here
Map<String, String> initParamMap = new HashMap<String, String>();
initParamMap.put("service", "http://localhost:8889/cas-client");
frb.setInitParameters(initParamMap);
return frb;
}
@Bean
FilterRegistrationBean ticketValidationFilter(){
AbstractTicketValidationFilter ticketValidationFilter=新建
org.jasig.cas.client.validation.Cas20ProxyReceivingTicketValidationFilter();
FilterRegistrationBean frb=新的FilterRegistrationBean();
frb.addUrlPatterns(“/*”);
frb.setFilter(ticketValidationFilter);
//这是车票有效期
TicketValidator validator=new org.jasig.cas.client.validation.Cas20ServiceTicketValidator(“https://localhost:8443/cas");
设置ticketValidationFilter.setTicketValidator(验证器);
//票证验证程序配置结束
Map initParamMap=新HashMap();
initParamMap.put(“服务”http://localhost:8889/cas-客户);
frb.setInitParameters(initParamMap);
返回frb;
}
java配置的全部优点在于,一些复杂的xml配置可以转换为非常简单的java
@Bean
FilterRegistrationBean ticketValidationFilter(){
Filter ticketValidationFilter = new
org.jasig.cas.client.validation.Cas20ProxyReceivingTicketValidationFilter();
FilterRegistrationBean frb = new FilterRegistrationBean();
frb.addUrlPatterns("/*");
frb.setFilter(ticketValidationFilter);
// ticket Validator somewhere here
Map<String, String> initParamMap = new HashMap<String, String>();
initParamMap.put("service", "http://localhost:8889/cas-client");
frb.setInitParameters(initParamMap);
return frb;
}
@Bean
FilterRegistrationBean ticketValidationFilter(){
AbstractTicketValidationFilter ticketValidationFilter = new
org.jasig.cas.client.validation.Cas20ProxyReceivingTicketValidationFilter();
FilterRegistrationBean frb = new FilterRegistrationBean();
frb.addUrlPatterns("/*");
frb.setFilter(ticketValidationFilter);
//here be ticket validaror
TicketValidator validator = new org.jasig.cas.client.validation.Cas20ServiceTicketValidator("https://localhost:8443/cas");
ticketValidationFilter.setTicketValidator(validator);
//end of ticket validator config
Map<String, String> initParamMap = new HashMap<String, String>();
initParamMap.put("service", "http://localhost:8889/cas-client");
frb.setInitParameters(initParamMap);
return frb;
}