Rainbond開源軟件介紹: Rainbond是國內首個開源的生產級無服務器PaaS。 深度整合基於Kubernetes的容器管理、多類型CI/CD應用構建與交付、多數據中心的資源管理等技術,提供雲原生應用全生命週期解決方案,構建應用與基礎設施、應用之間及基礎設施之間的互聯互通生態體系。12月12日,Rainbond正式開源。 [Rainbond詳細介紹](http://www.rainbond.com/docs/stable/getting-started/design-concept.html) [Rainbond項目地址](https://github.com/goodrain/rainbond)
Spring Boot框架簡化了新Spring應用的初始搭建以及開發過程,雲幫支持平臺部署Spring Boot類應用。html
雲幫提供Spring Boot配置MySQL服務的示例,去雲市一鍵式部署Spring Boot-MySQL示例java
如下內容是本地建立和運行該示例的過程:mysql
使用spring-boot-cli建立示例git
$ docker run -it --rm \ -v $PWD:/app goodrainapps/spring-boot-cli:1.5.9 spring init --dependencies=web spring-boot-mysql-demo
進入示例類文件存放目錄github
$ cd spring-boot-mysql-demo/src/main/java/com/example/springbootmysqldemo
添加DemoApplication.javaweb
@Controller @SpringBootApplication public class DemoApplication { @RequestMapping("/") @ResponseBody String home() { return "Hello World!"; } public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); } }
爲了加快maven構建,在setting.xml
中添加了國內的mirror。將setting.xml
拷貝到您的spring-boot-mysql-demo
中。spring
$ cd spring-boot-mysql-demo $ docker run -it --rm \ -v "$PWD":/app/build \ -w /app/build maven:3.5.2-jdk-7-alpine mvn -B -DskipTests=true -s settings.xml clean install
執行如下命令運行Hello World
示例sql
$ cd spring-boot-mysql-demo $ docker run -it --rm -v $PWD:/app -w /app -p 8080:8080 goodrainapps/openjdk:8u131-jre-alpine java -jar target/*.jar
訪問http://localhost:8080查看運行結果。docker
雲幫提供Spring-boot-mysql-demo的相關配置目錄結構以下,配置文件內容僅供參考。數據庫
詳細配置參考下文:
添加如下內容,將此應用與數據庫進行鏈接。
在pom.xml
內添mysql數據庫服務 :
<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.9</version> </dependency>
添加JDBC驅動:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency>
在application.properties
添加數據庫鏈接信息:
spring.datasource.url=jdbc:mysql://${MYSQL_HOST}:${MSYQL_PORT}/demo?createDatabaseIfNotExist=true spring.datasource.username=${MYSQL_USER} spring.datasource.password=${MYSQL_PASS} spring.datasource.driver-class-name=com.mysql.jdbc.Driver spring.datasource.maxActive=10 spring.datasource.maxIdle=5 spring.datasource.minIdle=2 spring.datasource.initialSize=5 spring.datasource.removeAbandoned=true
在源碼添加DatabaseConfig.java
@Configuration public class DatabaseConfig { @Bean @Primary @ConfigurationProperties(prefix = "spring.datasource") public DataSource dataSource() { return new org.apache.tomcat.jdbc.pool.DataSource(); } }
使用 JPA 管理生成實體的映射關係的代碼。
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency
使用LiquiBase,以便將JPA生成實體的映射關係在數據庫體現。第一步,在pom.xml
添加:
<dependency> <groupId>org.liquibase</groupId> <artifactId>liquibase-core</artifactId> <version>3.4.1</version> </dependency>
第二步,建立 Liquibase 的修改日誌,默認從 db.changelog-master.yaml
讀取:
databaseChangeLog: - changeSet: id: 1 author: <your_name> changes: - createTable: tableName: person columns: - column: name: id type: int autoIncrement: true constraints: primaryKey: true nullable: false - column: name: first_name type: varchar(255) constraints: nullable: false - column: name: last_name type: varchar(255) constraints: nullable: false
Thymeleaf能夠幫助渲染XML
、XHTML
、HTML5
內容的模板引擎,它也能夠輕易的與Spring MVC
等Web框架集成做爲Web應用的模板引擎。在pom.xml
中添加:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency>
爲了支持 Spring Boot MySQL demo 輕鬆部署在雲幫,將demo使用Dockerfile構建鏡像,在雲幫實現一鍵式部署
#使用配置好環境的父鏡像 FROM maven:3.5.2-jdk-7-alpine #建立demo源碼工做目錄 RUN mkdir /app #將本地源碼拷貝到鏡像中 COPY . /app/ #指定工做目錄 WORKDIR /app #聲明映射端口 EXPOSE 5000 #指定maven的配置文件,文件內製定新的mirror地址 RUN mvn -B -DskipTests=true clean install #啓動腳本 ENTRYPOINT ["/app/run.sh"]
$ docker build -t goodrainapps/spring-boot-mysql-demo .
#運行mysql $ docker run -d --name mysql -e MYSQL_ROOT_PASSWORD=123456 mysql
#運行示例 $ docker run -it --rm --link mysql \ -p 5000:5000 \ -e MYSQL_HOST=mysql \ -e MYSQL_PORT=3306 \ -e MYSQL_USER=root \ -e MYSQL_PASS=123456 \ goodrainapps/spring-boot-mysql-demo
訪問http://localhost:5000查看Spring Boot 框架配置MySQL服務的運行界面