Spring MVC, два экземпляра конфигурации вместо одного
Я начинаю узнавать о Spring MVC. Я'Я пытаюсь избавиться от всей конфигурации Spring XML. Вот мой web.xml:
contextClass
org.springframework.web.context.support.AnnotationConfigWebApplicationContext
contextConfigLocation
pl.mbrnwsk.sklep.config.AppConfiguration
org.springframework.web.context.ContextLoaderListener
dispatcher
org.springframework.web.servlet.DispatcherServlet
contextClass
org.springframework.web.context.support.AnnotationConfigWebApplicationContext
contextConfigLocation
pl.mbrnwsk.sklep.config.AppConfiguration
dispatcher
/
Appconfiguration.java:
@Configuration
@EnableTransactionManagement
@ComponentScan("pl.mbrnwsk.sklep")
public class AppConfiguration {
public String hbm2ddl_auto = "update";
public AppConfiguration(){
System.out.println("AppConfiguration");
}
@Bean
public ViewResolver viewResolver(){
InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();
viewResolver.setPrefix("/");
viewResolver.setSuffix(".jsp");
return viewResolver;
}
@Bean
public DataSource dataSource() {
DriverManagerDataSource ds = new DriverManagerDataSource();
ds.setDriverClassName("org.hsqldb.jdbcDriver");
ds.setUrl("jdbc:hsqldb:file:/SklepDB/");
ds.setUsername("SA");
ds.setPassword("");
return ds;
}
@Bean
public SessionFactory sessionFactory() {
LocalSessionFactoryBuilder ss = new LocalSessionFactoryBuilder(dataSource());
ss.scanPackages("pl.mbrnwsk.sklep.model");
ss.setProperty("hibernate.show_sql", "true");
ss.setProperty("hibernate.hbm2ddl.auto", hbm2ddl_auto);
ss.setProperty("hibernate.dialect",
"org.hibernate.dialect.HSQLDialect");
return ss.buildSessionFactory();
}
@Bean
public PlatformTransactionManager txManager(){
return new HibernateTransactionManager(sessionFactory());
}
}
Экземпляр AppConfiguration создается два раза: один раз при запуске Tomcat и дважды при вводе некоторого URL-адреса, который должен обрабатываться диспетчером. Это не желаемое поведение. Я хотел бы, чтобы AppConfiguration создавалась только при запуске Tomcat. Как этого добиться? И второй вопрос, что делает слушатель?