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 类应用。
云帮提供 Spring Boot 配置 MySQL 服务的示例,去云市一键式部署Spring Boot-MySQL 示例
以下内容是本地创建和运行该示例的过程:
使用 spring-boot-cli 创建示例
$ docker run -it --rm \
-v $PWD:/app goodrainapps/spring-boot-cli:1.5.9 spring init --dependencies=web spring-boot-mysql-demo
进入示例类文件存放目录
$ cd spring-boot-mysql-demo/src/main/java/com/example/springbootmysqldemo
添加 DemoApplication.java
@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
中。
$ 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
示例
$ 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查看运行结果。
云帮提供 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 服务的运行界面
1
idamien 2018-01-11 00:00:28 +08:00
和 spring boot 官方上那个入门教程有什么区别 简介版 ?
|
2
Igotyouinmysight OP @idamien 分享的最佳实践是场景化,利用 docker 容器技术运行的一个 demo
|
3
jack80342 2018-03-03 10:55:21 +08:00
这几天翻译了 Spring Boot 最新的官方文档,欢迎 Fork,https://www.gitbook.com/book/jack80342/spring-boot/details
|