從Spring MVC XML文件移至javaconfig。我的數(shù)據(jù)庫(kù)XML文件真的讓我迷茫了
對(duì)于
<tx:annotation-driven transaction-manager='hibernateTransactionManager' />
注釋你的配置類,WebMVCConfig與
@EnableTransactionManagement
對(duì)于
<context:component-scan base-package='org.uftwf' />
將Package String添加到您的@ComponentScan字段basePackages
對(duì)于
<context:property-placeholder location='classpath:app.properties' />
用以下注釋您的Configuration類
@PropertySource(value = 'classpath:app.properties')
然后做你的PropertyPlaceholderConfigurer @Bean方法static。
對(duì)于
<jee:jndi-lookup jndi-name='java:jboss/datasources/MysqLDB' expected-type='javax.sql.DataSource' />
我想你可以做
@Beanpublic DataSource dataSource() throws Exception { Context ctx = new InitialContext(); return (DataSource) ctx.lookup('java:jboss/datasources/MysqLDB');}
無(wú)需自動(dòng)裝配會(huì)話工廠,只需調(diào)用您的@Bean方法
@Beanpublic HibernateTransactionManager transactionManager(){ HibernateTransactionManager htm = new HibernateTransactionManager(); htm.setSessionFactory(sessionFactory()); return htm;}解決方法
我從Spring MVC XML文件移動(dòng)到j(luò)avaconfig。我的數(shù)據(jù)庫(kù)XML文件真的讓我迷茫了。我不知道如何使Hibernate4工作以及我的JBossJNDI數(shù)據(jù)源工作。有人可以告訴我如何使javaconfig類像這種XML一樣工作。
這是我的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'> <context:property-placeholder location='classpath:app.properties' /> <context:component-scan base-package='org.uftwf' /> <tx:annotation-driven transaction-manager='hibernateTransactionManager' /> <jee:jndi-lookup jndi-name='java:jboss/datasources/mySQLDB'expected-type='javax.sql.DataSource' /> <bean 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 class='org.springframework.orm.hibernate4.HibernateTransactionManager'><property name='sessionFactory' ref='sessionFactory' /> </bean></beans>
這是我的javaconfig類:
@Configuration@EnableWebMvc@ComponentScan(basePackages= {'org.uftwf.inquiry'})@ImportResource('/WEB-INF/spring/root-config.xml')public class WebMVCConfig extends WebMvcConfigurerAdapter { private static final String MESSAGE_SOURCE = '/WEB-INF/classes/messages'; private static final Logger logger = LoggerFactory.getLogger(WebMVCConfig.class); @Value('${jdbc.driverClassName}') private String driverClassName; @Value('${jdbc.url}') private String url; @Value('${jdbc.username}') private String username; @Value('${jdbc.password}') private String password; @Value('${hibernate.dialect}') private String hibernateDialect; @Value('${hibernate.show_sql}') private String hibernateShowSql; @Value('${hibernate.hbm2ddl.auto}') private String hibernateHbm2ddlAuto; @Bean public PropertyPlaceholderConfigurer getPropertyPlaceholderConfigurer() {PropertyPlaceholderConfigurer ppc = new PropertyPlaceholderConfigurer();ppc.setLocation(new ClassPathResource('application.properties'));ppc.setIgnoreUnresolvablePlaceholders(true);return ppc; } @Bean() public DataSource getDataSource() {DriverManagerDataSource ds = new DriverManagerDataSource();ds.setDriverClassName(driverClassName);ds.setUrl(url);ds.setUsername(username);ds.setPassword(password);return ds; } @Bean public LocalSessionFactoryBean sessionFactory() {LocalSessionFactoryBean factoryBean = new LocalSessionFactoryBean();factoryBean.setDataSource(getDataSource());factoryBean.setHibernateProperties(getHibernateProperties());factoryBean.setPackagesToScan('org.uftwf.inquiry.model');return factoryBean; } @Bean public Properties getHibernateProperties() {Properties hibernateProperties = new Properties();hibernateProperties.setProperty('hibernate.dialect',hibernateDialect);//hibernateProperties.setProperty('hibernate.show_sql','true');//hibernateProperties.setProperty('hibernate.format_sql','true');hibernateProperties.setProperty('hibernate.hbm2ddl.auto','update');hibernateProperties.setProperty('javax.persistence.validation.mode','none');//Audit History flagshibernateProperties.setProperty('org.hibernate.envers.store_data_at_delete','true');hibernateProperties.setProperty('org.hibernate.envers.global_with_modified_flag','true');return hibernateProperties; } @Bean @Autowired public HibernateTransactionManager transactionManager(SessionFactory sessionFactory) {HibernateTransactionManager htm = new HibernateTransactionManager();htm.setSessionFactory(sessionFactory);return htm; } @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; }}
我認(rèn)為我缺少的部分如下,但請(qǐng)多檢查我的課
<context:property-placeholder location='classpath:app.properties' /> <context:component-scan base-package='org.uftwf' /> <tx:annotation-driven transaction-manager='hibernateTransactionManager' /> <jee:jndi-lookup jndi-name='java:jboss/datasources/mySQLDB'expected-type='javax.sql.DataSource' />
相關(guān)文章:
1. pip安裝提示Twisted錯(cuò)誤問(wèn)題(Python3.6.4安裝Twisted錯(cuò)誤)2. javascript - vue-echarts-v3使用的過(guò)程中折線圖區(qū)域呈漸變色。3. 關(guān)于Mysql聯(lián)合查詢4. centos7 編譯安裝 Python 3.5.1 失敗5. mysql - 這個(gè)數(shù)據(jù)庫(kù)合計(jì)用 視圖做,和直接算好存在數(shù)據(jù)庫(kù)里,到時(shí)候調(diào)用起來(lái)哪個(gè)快?6. python - beautifulsoup獲取網(wǎng)頁(yè)內(nèi)容的問(wèn)題7. python - 能通過(guò)CAN控制一部普通的家用轎車嗎?8. 人工智能 - python 機(jī)器學(xué)習(xí) 醫(yī)療數(shù)據(jù) 怎么學(xué)9. mysql - 分庫(kù)分表、分區(qū)、讀寫分離 這些都是用在什么場(chǎng)景下 ,會(huì)帶來(lái)哪些效率或者其他方面的好處10. c++ - 請(qǐng)問(wèn)MySQL_Connection::isReadOnly 怎么解決?
