gpt4 book ai didi

java - 我不知所措地从 Spring XML 迁移到 Java-config

转载 作者:搜寻专家 更新时间:2023-11-01 01:17:32 24 4
gpt4 key购买 nike

我有一个 spring-secuiry.xml 和一个 database.xml 我需要移动到 Java-config 但我不知道如何..

这是我的sercuirty.xml:

<?xml version="1.0" encoding="UTF-8"?>
<beans:beans xmlns="http://www.springframework.org/schema/security"
xmlns:beans="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
http://www.springframework.org/schema/security
http://www.springframework.org/schema/security/spring-security-3.1.xsd">


<global-method-security pre-post-annotations="enabled" />

<http use-expressions="true">
<intercept-url access="hasRole('ROLE_VERIFIED_MEMBER')" pattern="/mrequest**" />
<intercept-url pattern='/*' access='permitAll' />
<form-login default-target-url="/visit" />

<logout logout-success-url="/" />
</http>

<authentication-manager>
<authentication-provider>
<user-service>
<user name="cpilling04@aol.com.dev" password="testing" authorities="ROLE_VERIFIED_MEMBER" />
</user-service>

</authentication-provider>
</authentication-manager>
</beans:beans>

这是我的database.xml:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
xmlns:tx="http://www.springframework.org/schema/tx" xmlns:jdbc="http://www.springframework.org/schema/jdbc"
xmlns:jee="http://www.springframework.org/schema/jee"

xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.1.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
http://www.springframework.org/schema/jdbc
http://www.springframework.org/schema/jdbc/spring-jdbc-3.0.xsd
http://www.springframework.org/schema/jee
http://www.springframework.org/schema/jee/spring-jee-3.0.xsd">

<!-- Last changed: $LastChangedDate: 2012-11-19 08:53:13 -0500 (Mon, 19
Nov 2012) $ @author $Author: johnathan.smith@uftwf.org $ @version $Revision:
829 $ -->

<context:property-placeholder location="classpath:app.properties" />

<context:component-scan base-package="org.uftwf" />

<tx:annotation-driven transaction-manager="hibernateTransactionManager" />

<jee:jndi-lookup id="dataSource" jndi-name="java:jboss/datasources/mySQLDB"
expected-type="javax.sql.DataSource" />

<bean id="sessionFactory"
class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="annotatedClasses">
<list>
<value>org.uftwf.inquiry.model.MemberInquiryInformation</value>

</list>
</property>

<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">${hibernate.dialect}</prop>
<prop key="hibernate.show_sql">${hibernate.show_sql}</prop>
<prop key="hibernate.use_sql_comments">${hibernate.use_sql_comments}</prop>
<prop key="format_sql">${format_sql}</prop>
</props>
</property>
</bean>

<bean id="hibernateTransactionManager"
class="org.springframework.orm.hibernate4.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
</beans>

谁能告诉我如何更改以下 Java 配置以拥有它们:

@Configuration
@EnableWebMvc
@ComponentScan(basePackages= {"com.johnathanmsmith.mvc.web"})
public class WebMVCConfig extends WebMvcConfigurerAdapter {

private static final String MESSAGE_SOURCE = "/WEB-INF/classes/messages";

private static final Logger logger = LoggerFactory.getLogger(WebMVCConfig.class);

@Bean
public ViewResolver resolver() {
UrlBasedViewResolver url = new UrlBasedViewResolver();
url.setPrefix("/WEB-INF/view/");
url.setViewClass(JstlView.class);
url.setSuffix(".jsp");
return url;
}


@Bean(name = "messageSource")
public MessageSource configureMessageSource() {
logger.debug("setting up message source");
ReloadableResourceBundleMessageSource messageSource = new ReloadableResourceBundleMessageSource();
messageSource.setBasename(MESSAGE_SOURCE);
messageSource.setCacheSeconds(5);
messageSource.setDefaultEncoding("UTF-8");
return messageSource;
}

@Bean
public LocaleResolver localeResolver() {
SessionLocaleResolver lr = new SessionLocaleResolver();
lr.setDefaultLocale(Locale.ENGLISH);
return lr;
}

@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
logger.debug("setting up resource handlers");
registry.addResourceHandler("/resources/").addResourceLocations("/resources/**");
}

@Override
public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
logger.debug("configureDefaultServletHandling");
configurer.enable();
}

@Override
public void addInterceptors(final InterceptorRegistry registry) {
registry.addInterceptor(new LocaleChangeInterceptor());
}

@Bean
public SimpleMappingExceptionResolver simpleMappingExceptionResolver() {
SimpleMappingExceptionResolver b = new SimpleMappingExceptionResolver();

Properties mappings = new Properties();
mappings.put("org.springframework.web.servlet.PageNotFound", "p404");
mappings.put("org.springframework.dao.DataAccessException", "dataAccessFailure");
mappings.put("org.springframework.transaction.TransactionException", "dataAccessFailure");
b.setExceptionMappings(mappings);
return b;
}

@Bean
public RequestTrackerConfig requestTrackerConfig()
{
RequestTrackerConfig tr = new RequestTrackerConfig();
tr.setPassword("Waiting#$");
tr.setUrl("https://uftwfrt01-dev.uftmasterad.org/REST/1.0");
tr.setUser("root");

return tr;
}


}

最佳答案

正如评论中指出的那样,java 配置中尚不支持 Spring 安全性。

我不久前将一个基本的 Spring mvc webapp 转换为完整的(或当时尽可能多的)代码配置。

可以查看the whole project on github ,这应该都是开箱即用的,并且还使用了 web/html5 良好实践的 inializr/bootstrap 东西。

My code config files are all here

正如您在我的安全类(class)中看到的那样,这有点像作弊!

import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.ImportResource;

/**
* Spring doesn't yet support pure java configuration of spring security
* so this will just have to import the old fashioned xml file.
*
* @author rob
*
*/
@Configuration
@ImportResource("classpath:META-INF/spring/security.xml")
public class SecurityConfiguration {}

更新

自 Spring-security 3.2 以来,您已经能够将 Spring-security 转换为基于 Java 的代码配置。我已经把它写在我的博客上了:http://automateddeveloper.blogspot.co.uk/2014/02/spring-4-xml-to-annotation-configuration.html

(包括源代码和使用 Spring 4 的完整 spring mvc 项目)

关于java - 我不知所措地从 Spring XML 迁移到 Java-config,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15438835/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com