我实现了使用
Spring MVC,hibernate和Jax-RS实现的两个基于maven的独立Web项目.
但是我的要求改变了,现在我需要将项目作为一个子项目合并到另一个项目,这是我们的父项目.所以我使用maven多模块配置.
但是我的要求改变了,现在我需要将项目作为一个子项目合并到另一个项目,这是我们的父项目.所以我使用maven多模块配置.
项目1:家长项目
<packaging>pom</packaging> <modules> <module>../child1</module> <module>../child2</module> </modules>
孩子1:
<packaging>jar</packaging> <parent> <groupId>com.xyz.alpha</groupId> <artifactId>parent</artifactId> <version>0.0.1-SNAPSHOT</version> <relativePath>../parent</relativePath> </parent>
孩子2:
<packaging>jar</packaging> <dependency> <groupId>com.xyz.alpha</groupId> <artifactId>child1</artifactId> <version>2.0.2</version> </dependency> <parent> <groupId>com.xyz.alpha</groupId> <artifactId>parent</artifactId> <version>0.0.1-SNAPSHOT</version> <relativePath>../parent</relativePath> </parent>
但是我需要在java中配置项目,以便它将扫描父项的组件以及子项目和执行项目.
目前我为每个项目单独配置:
AppIntializer.java
public class AppInitializer extends AbstractAnnotationConfigdispatcherServletinitializer { @Override protected Class<?>[] getRootConfigClasses() { return new Class[] { AppConfig.class }; } @Override protected Class<?>[] getServletConfigClasses() { return null; } @Override protected String[] getServletMappings() { return new String[] { "/" }; } }
AppConfig.java
@Configuration @EnableWebMvc @ComponentScan(basePackages = "com.x.y") public class AppConfig extends WebMvcConfigurerAdapter{ @Bean public ViewResolver viewResolver() { InternalResourceViewResolver viewResolver = new InternalResourceViewResolver(); viewResolver.setViewClass(JstlView.class); viewResolver.setPrefix("/WEB-INF/views/"); viewResolver.setSuffix(".jsp"); return viewResolver; } @Override public void addCorsMappings(CorsRegistry registry) { registry.addMapping("/**"); } @Override public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) { configurer.enable(); } @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { registry.addResourceHandler("/resources/**").addResourceLocations("/resources/"); } }
HibernateConfiguration.java
@Configuration @EnableTransactionManagement @ComponentScan({ "com.x.y.configuration" }) @PropertySource(value = { "classpath:application.properties" }) public class HibernateConfiguration { @Autowired private Environment environment; @Bean public LocalSessionfactorybean sessionFactory() { LocalSessionfactorybean sessionFactory = new LocalSessionfactorybean(); sessionFactory.setDataSource(dataSource()); sessionFactory.setPackagesToScan(new String[] { "com.x.y.model" }); sessionFactory.setHibernateProperties(hibernateProperties()); return sessionFactory; } @Bean public DataSource dataSource() { DriverManagerDataSource dataSource = new DriverManagerDataSource(); dataSource.setDriverClassName(environment.getrequiredProperty("jdbc.driverClassName")); dataSource.setUrl(environment.getrequiredProperty("jdbc.url")); dataSource.setUsername(environment.getrequiredProperty("jdbc.username")); dataSource.setPassword(environment.getrequiredProperty("jdbc.password")); return dataSource; } private Properties hibernateProperties() { Properties properties = new Properties(); properties.put("hibernate.dialect",environment.getrequiredProperty("hibernate.dialect")); properties.put("hibernate.show_sql",environment.getrequiredProperty("hibernate.show_sql")); properties.put("hibernate.format_sql",environment.getrequiredProperty("hibernate.format_sql")); properties.put("hibernate.hbm2ddl.auto",environment.getrequiredProperty("hibernate.hbm2ddl.auto")); return properties; } @Bean @Autowired public HibernateTransactionManager transactionManager(SessionFactory s) { HibernateTransactionManager txManager = new HibernateTransactionManager(); txManager.setSessionFactory(s); return txManager; } }
解决方法
如果我是你,我将在父母中创建第三个模块,并将两个已经有新的孩子作为依赖关系.然后,您只需要根据需要为新模块配置弹簧.
原文地址:https://www.jb51.cc/java/122552.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。