最近自娱自乐做了个小程序,正好也研究下网上的开源代码,学习小程序开发的同时巩固下自己的Java知识。https://github.com/linlinjava/litemall。
工程的多模块化
Maven
在工程的主目录的pom.xml文件中,定义了
<modules>
<module>litemall-core</module>
<module>litemall-db</module>
<module>litemall-wx-api</module>
<module>litemall-admin-api</module>
<module>litemall-all</module>
</modules>
同时定义了所有的对外依赖。
Spring
Spring Boot Test
Spring Boot测试步骤,直接在测试类上面加上如下2个注解:
@RunWith(SpringRunner.class)
@SpringBootTest
就能取到spring中的容器的实例,如果配置了@Autowired那么就自动将对象注入。
Spring profiles
spring.profiles.active=db, core, admin, wx
设置多个active profile的目的就是在不同的module的配置文件。
MyBatis
MyBatis-spring
MapperScan注解在使用Java Config时可以使用。使用的方式如:
@MapperScan("org.mybatis.spring.sample.mapper")
public class AppConfig {
}
其定义为:
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
@Documented
@Import(MapperScannerRegistrar.class)
public @interface MapperScan {
...
}
Import注解可以用来导入一个常规类如@Import({A.class,B.class})
,而MapperScannerRegistrar类非常规类,其是ImportBeanDefinitionRegistrar接口的实现。
那么,将使用MapperScannerRegistrar.class