官网地址

JHipster是基于spring boot的,支持多配置文件。

可以针对不同环境设置不同配置文件。格式如下

application-{profile}.propertoes或者application-{profile}.yml

JHipster使用yml进行配置。

生成JHipster应用,默认会在config下生产3个application配置文件

  1. application.yml
  2. application-dev.yml
  3. application-prod.yml

运行 mvn spring-boot:run或者./mvnw 默认运行的是application.ymlapplication-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)

  1. target/jhipster-0.0.1-SNAPSHOT.war
  2. 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默认不适用它

results matching ""

    No results matching ""