JHipster是基于spring boot的,支持多配置文件。
可以针对不同环境设置不同配置文件。格式如下
application-{profile}.propertoes
或者application-{profile}.yml
JHipster使用yml进行配置。
生成JHipster应用,默认会在config下生产3个application配置文件
- application.yml
- application-dev.yml
- application-prod.yml
运行 mvn spring-boot:run
或者./mvnw
默认运行的是application.yml
和 application-dev.yml
如果需要使用prod.yml配置,则需要指定 ./mvnw -Pprod
或者 mvn spring-boot:run -Pprod
多配置文件的好处在于,不需要在测试和生产环境切换的时候,来回改一个配置文件。减少错误。并且配合注册中心(jhipster-registry)的配置中心(Spring Cloud Config)实现集中管理配置文件
配置
如果要使用production配置文件
maven
./mvnw -Pprod
Gradle
./gradlew -Pprod
生成War文件
maven
./mvnw -Pprod package
Gradle
./gradlew -Pprod bootRepackage
此命令会生产2个文件(假如应用名叫 jhipster)
- target/jhipster-0.0.1-SNAPSHOT.war
- target/jhipster-0.0.1-SNAPSHOT.war.original
第一个是可执行war文件(参见下节),本身包含运行库。如果是运行在Tomcat等web容器中,则建议使用第二个文件。具体可以比较两个文件的大小,一般相差10M左右。
注意 使用prod
配置生成的war不包含dev
资源
不通过web容器(Tomcat,Weblogic)执行war
上节第一步生成的第一个war文件,在Windows执行
java -jar jhipster-0.0.1-SNAPSHOT.war
在Mac OS X或者Linux执行
./jhipster-0.0.1-SNAPSHOT.war
GZipping
在上上节中通过prod
生成的第一个可执行war文件,将默认压缩所有静态资源(HTML,CSS,JavaScrip,XML,text)和REST请求,具体参见 application-prod.yml中的server.compression
节,默认配置如下
server:
port: 9999
compression:
enabled: true
mime-types: text/html,text/xml,text/plain,text/css, application/javascript, application/json
min-response-size: 1024
注意gzip压缩式在web容器完成的,适用于可执行war
,如果使用外部的web容器,需要单独配置
使用Gulp优化的JavaScript应用
HTTP 缓存
使用prod
配置文件,JHipster配置了一个servlet过滤器CachingHttpHeadersFilter.java
,具体配置参见 WebConfigurer.java#initCachingHttpHeadersFilter
,代码如下
private void initCachingHttpHeadersFilter(ServletContext servletContext,
EnumSet<DispatcherType> disps) {
log.debug("Registering Caching HTTP Headers Filter");
FilterRegistration.Dynamic cachingHttpHeadersFilter =
servletContext.addFilter("cachingHttpHeadersFilter",
new CachingHttpHeadersFilter(jHipsterProperties));
cachingHttpHeadersFilter.addMappingForUrlPatterns(disps, true, "/content/*");
cachingHttpHeadersFilter.addMappingForUrlPatterns(disps, true, "/app/*");
cachingHttpHeadersFilter.setAsyncSupported(true);
}
其中/app/*
存放js和source.map文件
/content/*
存放 font,image,css文件
默认缓存 1461 天
监控
详见 监控
在开发中,Metrics数据通过JMX提供:通过JCosole访问
在生成中,会根据application-prod.yml
配置的决定发送到ELK/JHipster-Console/Graphite。
安全
JHipster默认生成了一些用户,在生成环境中,需要修改默认密码
admin
是管理员具有 "ROLE_USER"和"ROLE_ADMIN"权限system
用于审计,某些动作由系统完成,而不是用户完成(定时归档,备份等),具有"ROLE_USER"和"ROLE_ADMIN"权限user
是标准用户,具有 "ROLE_USER"权限anonymousUser
是未经验证的匿名用户,没有任何授权。该用户可以用于一些Spring Security配置,但是JHipster默认不适用它