Я настраиваю проект springMVC с помощью конфигурации java, когда я захожу: http://127.0.0.1:8081/testInsert?empName=aa&role=bb&purName=cc&money=10
, но транзакцияManager не работает!
Это весь мой проект в git:
https://github.com/fuduhui/noxmlmvc
о моей конфигурации:
сначала я пишу @ EnableTransactionManagement
затем я добавляю transationManager
и я также реализую TransactionManagementConfigurer, это мой метод переопределения
Я использую его @transactional в сервисе, подобном этому
это весь мой код конфигурации, игнорируйте импорт:
package com.config;
@Configuration
@EnableWebMvc
@ComponentScan(basePackages = {"com.*"})
@EnableTransactionManagement
public class WebConfig implements TransactionManagementConfigurer {
@Bean
public InternalResourceViewResolver jspResolver() {
InternalResourceViewResolver viewResolver = new
InternalResourceViewResolver();
viewResolver.setPrefix("/");
viewResolver.setSuffix(".jsp");
viewResolver.setExposeContextBeansAsAttributes(true);
return viewResolver;
}
@Bean
public MappingJackson2JsonView jsonView(){
MappingJackson2JsonView jsonView=new MappingJackson2JsonView();
jsonView.setContentType("application/json;charset=UTF-8");
return jsonView;
}
@Bean
public PooledDataSource dataSource(){
PooledDataSource dataSource=new PooledDataSource();
dataSource.setDriver("com.mysql.jdbc.Driver");
dataSource.setUrl("jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Hongkong");
dataSource.setUsername("root");
dataSource.setPassword("fuduhui123");
dataSource.setPoolMaximumActiveConnections(5);
dataSource.setPoolMaximumIdleConnections(3);
return dataSource;
}
@Bean(name = "sqlSessionFactory")
public SqlSessionFactoryBean sessionFactoryBean(){
try{
SqlSessionFactoryBean sessionFactoryBean=new SqlSessionFactoryBean();
sessionFactoryBean.setDataSource(dataSource());
Resource[] mapperLocations=new PathMatchingResourcePatternResolver().getResources("classpath:mapper/testdb/*.xml");
sessionFactoryBean.setMapperLocations(mapperLocations);
return sessionFactoryBean;
}catch (Exception e){
e.printStackTrace();
}
return null;
}
@Bean
public DataSourceTransactionManager transactionManager(){
DataSourceTransactionManager transactionManager=new DataSourceTransactionManager();
transactionManager.setDataSource(dataSource());
return transactionManager;
}
@Bean
public MapperScannerConfigurer scannerConfigurer(){
MapperScannerConfigurer scannerConfigurer=new MapperScannerConfigurer();
scannerConfigurer.setBasePackage("com.dao");
scannerConfigurer.setSqlSessionFactoryBeanName("sqlSessionFactory");
return scannerConfigurer;
}
@Override
public PlatformTransactionManager annotationDrivenTransactionManager() {
return transactionManager();
}
}
и я сканирую весь код, а не только контроллер
но это не сработало, почему?большое спасибо