【Rainbond最佳实践】Spring Boot框架配置MySQL
2018-01-10 00:00
926 查看
【Rainbond最佳实践】Spring Boot框架配置MySQL
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的相关配置目录结构如下,配置文件内容仅供参考。详细配置参考下文:
连接MySQL
添加以下内容,将此应用与数据库进行连接。在
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>
docker化改造
为了支持 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服务的运行界面
相关文章推荐
- 快速搭建springboot框架以及整合ssm+shiro+安装Rabbitmq和Erlang、Mysql下载与配置
- 开发框架:Spring XML配置十二个最佳实践
- Rainbond最佳实践:Tomcat配置Redis实现Session共享
- spring boot框架学习学前掌握之重要注解(2)-通过java的配置方式进行配置spring
- Springboot Mybatis MySQL读写分离及事物配置
- spring boot框架学习学前掌握之重要注解(2)-通过java的配置方式进行配置spring
- SpringBoot+spring-date-jpa+Hibernate 整合mysql 与sqlserver 配置文件信息
- atitit.spring3 mvc url配置最佳实践
- Spring Boot 配置文件 – 在坑中实践
- 第2.1章 WEB系统最佳实践Spring文件配置
- 企业级Spring最佳实践 - 项目配置
- springboot 整合dubbo最佳实践 (使用redis作为注册中心)
- Spring+Hibernate框架下MySql读写分离,主从数据库配置
- Spring Boot干货系列:(七)默认日志框架配置
- 第2.1.1章 WEB系统最佳实践Spring文件配置之spring-cache.xml
- 第2.1.6章 WEB系统最佳实践Spring文件配置之spring-hessian-client.xml
- SpringBoot实践之---默认日志logback配置解析
- spring boot 最佳实践(四)--Spring MVC
- Spring Boot 实践折腾记(六):Spring Boot中的容器配置和SSL支持
- Spring+Hibernate框架下MySql读写分离,主从数据库配置