/src/main/resources/conf/plugin
二次开发的核心就是配置文件,通过配置文件将不同模块和插件整合到一起。可以在这个目录下新建自己的文件夹,如:abc、novel等,本例为plug,即/src/main/resources/conf/plugin/plug
。
配置文件目录及其子目录下文件名为context*.xml
的配置文件会自动加载为Spring的WebApplicationContext。
触发自动加载的类是com.jspxcms.core.Application
,相关代码为:@ImportResource({ "classpath:conf/**/context*.xml", "classpath:custom.xml" })
。
本例的配置文件/src/main/resources/conf/plugin/plug/context.xml
,符合自动加载规则,文件中<bean class="com.jspxcms.plug.ContextConfig" />
会加载该类中的配置。在这个类里分别加载了:
@EntityScan({ "com.jspxcms.plug.domain" })
@EnableJpaRepositories(basePackages = { "com.jspxcms.plug.repository" }, repositoryFactoryBeanClass = MyJpaRepositoryFactoryBean.class)
@ComponentScan({ "com.jspxcms.plug.service.impl", "com.jspxcms.plug.web.fore" })
配置文件目录及其子目录下文件名为backend*.xml
的配置文件会自动加载为后台Controller。
触发自动加载的类是com.jspxcms.core.BackendWebConfig
,相关代码为:@ImportResource({ "classpath:conf/**/backend*.xml" })
。
本例的配置文件/src/main/resources/conf/plugin/plug/backend.xml
符合自动加载规则。
<context:component-scan base-package="com.jspxcms.plug.web.back" use-default-filters="false">
<context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
<context:include-filter type="annotation" expression="org.springframework.web.bind.annotation.ControllerAdvice"/>
</context:component-scan>
这个配置会自动加载com.jspxcms.plug.web.back
包下所有带有Controller
或ControllerAdvice
注解的类。
前台模板Freemarker标签、国际化文件目录等配置在conf.properties中配置。
配置文件目录及其子目录下文件名为conf*.properties
的文件会自动加载。
触发自动加载的类是com.jspxcms.core.ShiroConfig
,相关代码为:loader.setValue("classpath:conf/plugin/**/conf*.properties", "classpath:conf/conf.properties");
。
本例的配置文件/src/main/resources/conf/plugin/plug/conf.properties
,符合自动加载规则。
后台功能菜单及权限由该文件配置。
配置文件目录及其子目录下文件名为menu*.yml
的文件会自动加载。
触发自动加载的类是com.jspxcms.core.MenuConfig
,相关代码为:appContext.getResources("classpath:conf/**/menu*.yml");
本例的配置文件/src/main/resources/conf/plugin/plug/menu.properties
,符合自动加载规则。