ff4j web console 配置说明
2021-03-20 07:25
标签:uil missing sql数据库 pac oca artifact XML 应用 condition web console 可以让我们方便的通过界面管理ff4j,以下是一些简单的说明 访问地址:http://localhost:8080/ff4j-web-console/home https://stackoverflow.com/questions/37439369/spring-boot-and-thymeleaf-3-0-0-release-integration/39758600 ff4j web console 配置说明 标签:uil missing sql数据库 pac oca artifact XML 应用 condition 原文地址:https://www.cnblogs.com/rongfengliang/p/12740537.html
详细参考github 文档spring boot 集成
xml version="1.0" encoding="UTF-8"?>
project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
modelVersion>4.0.0/modelVersion>
?
groupId>com.dalongrong/groupId>
artifactId>webconsole-ff4j/artifactId>
version>1.0-SNAPSHOT/version>
parent>
groupId>org.springframework.boot/groupId>
artifactId>spring-boot-starter-parent/artifactId>
version>1.5.15.RELEASE/version>
/parent>
properties>
project.build.sourceEncoding>UTF-8/project.build.sourceEncoding>
java.version>1.8/java.version>
ff4j.version>1.8.4/ff4j.version>
?
/properties>
dependencies>
dependency>
groupId>org.ff4j/groupId>
artifactId>ff4j-web/artifactId>
version>${ff4j.version}/version>
/dependency>
dependency>
groupId>org.springframework.boot/groupId>
artifactId>spring-boot-starter-web/artifactId>
/dependency>
dependency>
groupId>org.ff4j/groupId>
artifactId>ff4j-spring-boot-starter/artifactId>
version>${ff4j.version}/version>
/dependency>
dependency>
groupId>org.thymeleaf/groupId>
artifactId>thymeleaf/artifactId>
version>3.0.2.RELEASE/version>
/dependency>
dependency>
groupId>org.ff4j/groupId>
artifactId>ff4j-store-springjdbc/artifactId>
version>${ff4j.version}/version>
/dependency>
?
dependency>
groupId>org.apache.commons/groupId>
artifactId>commons-dbcp2/artifactId>
/dependency>
dependency>
groupId>mysql/groupId>
artifactId>mysql-connector-java/artifactId>
/dependency>
/dependencies>
build>
plugins>
plugin>
groupId>org.springframework.boot/groupId>
artifactId>spring-boot-maven-plugin/artifactId>
/plugin>
/plugins>
/build>
/project>
application.properties 文件
添加了jdbc datasourcespring.datasource.name=ff4j_db
spring.datasource.url=jdbc:mysql://localhost:3306/ff4j_v1
spring.datasource.driverClassName=com.mysql.jdbc.Driver
spring.datasource.username=root
spring.datasource.password=dalongrong
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
主要是关于web console 的servlet 配置
FF4jServletConfig.javapackage com.dalong;
?
import org.ff4j.FF4j;
import org.ff4j.spring.boot.autoconfigure.FF4JConfiguration;
import org.ff4j.web.FF4jDispatcherServlet;
import org.ff4j.web.embedded.ConsoleServlet;
import org.springframework.boot.autoconfigure.AutoConfigureAfter;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.boot.web.servlet.ServletRegistrationBean;
import org.springframework.boot.web.support.SpringBootServletInitializer;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
?
@Configuration
@ConditionalOnClass({ConsoleServlet.class, FF4jDispatcherServlet.class})
@AutoConfigureAfter({FF4JConfiguration.class})
public class FF4jServletConfig
extends SpringBootServletInitializer
{
@Bean
public ServletRegistrationBean ff4jDispatcherServletRegistrationBean(FF4jDispatcherServlet ff4jDispatcherServlet)
{
return new ServletRegistrationBean(ff4jDispatcherServlet, new String[] { "/ff4j-web-console/*" });
}
?
@Bean
@ConditionalOnMissingBean
public FF4jDispatcherServlet getFF4jDispatcherServlet(FF4j ff4j)
{
FF4jDispatcherServlet ff4jConsoleServlet = new FF4jDispatcherServlet();
ff4jConsoleServlet.setFf4j(ff4j);
return ff4jConsoleServlet;
}
}
Application.java 注意对于jdbc DataSource 通过bean 的覆盖方式处理package com.dalong;
?
import net.bytebuddy.asm.Advice;
import org.ff4j.FF4j;
import org.ff4j.springjdbc.store.EventRepositorySpringJdbc;
import org.ff4j.springjdbc.store.FeatureStoreSpringJdbc;
import org.ff4j.springjdbc.store.PropertyStoreSpringJdbc;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ComponentScan;
?
import javax.sql.DataSource;
?
@SpringBootApplication
@ComponentScan(value = {"org.ff4j.spring.boot.web.api", "org.ff4j.services", "org.ff4j.aop", "org.ff4j.spring","com.dalong"})
public class Application implements CommandLineRunner {
@Autowired
private DataSource dataSource;
?
@Autowired
FF4j ff4j;
?
public static void main(String[] args) {
SpringApplication.run(Application.class);
}
@Override
public void run(String... strings) throws Exception {
ff4j.setFeatureStore(new FeatureStoreSpringJdbc(dataSource));
ff4j.setPropertiesStore(new PropertyStoreSpringJdbc(dataSource));
ff4j.setEventRepository(new EventRepositorySpringJdbc(dataSource));
ff4j.audit(true);
ff4j.autoCreate(true);
}
}
运行效果
mysql数据库docker-compose up -d
mvn spring-boot:run
参考资料
https://github.com/ff4j/ff4j/wiki/Web-Concepts