中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何搭建基于docker環境搭建下springboot-mysql項目框架

發布時間:2021-07-09 17:00:32 來源:億速云 閱讀:188 作者:chen 欄目:大數據

本篇內容介紹了“如何搭建基于docker環境搭建下springboot-mysql項目框架”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

    在云時代,開發者創建的應用必須要能很方便地在網絡上傳播,也就是說應用必須脫離底層物理硬件的顯示;同時必須是“任何時間任何地點”可獲取的。我們通常想要快速搭建一個項目框架,數據庫的環境搭建需要消耗一定的精力,為了與外界系統環境隔離,推薦使用docker可以使我們把更多精力放在業務處理上。

實驗環境

  • docker 17.12.0-ce 

  • mysql鏡像版本 5.7

  • jdk 1.8 

  • springboot 2.1.4.RELEASE

  • 開發工具:IntelliJ IDEA

環境搭建

首先安裝好docker,安裝docker網上方法有很多,這里不再贅述。

搭建好docker環境之后,拉取mysql鏡像,如下:

docker pull mysql:5.7

如果不指定mysql版本,默認將會拉取最新latest版本。查看mysql鏡像是否安裝成功:

docker image ls
REPOSITORY            TAG                 IMAGE ID            CREATED             SIZE
mysql                 5.7                 f6509bac4980        11 days ago         373MB

運行容器,這里設置端口映射,并設置mysql的初始密碼,默認用戶名是root:

docker run -d --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7

查看容器運行狀態:

docker container ls
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                               NAMES
e87ae06931c8        mysql:5.7           "docker-entrypoint.s…"   4 seconds ago       Up 3 seconds        0.0.0.0:3306->3306/tcp, 33060/tcp   mysql

容器運行正常,進入容器,創建一個數據庫test以及一張測試表tbl_test:

docker exec -it mysql /bin/bash

root@e87ae06931c8:/# mysql -uroot -p
mysql> create database test;
mysql> create table operatelog (id INT, userId varchar(255), operateDesc varchar(255));

這樣mysql環境就搭建起來了。

實戰源碼

https://github.com/vincentduan/mavenProject 下面的springboot-mysql項目

實戰步驟梳理

本次實戰的步驟如下:

  1. 創建springboot工程;

  2. 創建dao,使用JdbcTemplate連接mysql;

  3. 創建Service層的接口和實現;

  4. 創建mysql連接池配置;

  5. 創建controller,開發一個http服務接口,里面會調用service層的服務;

  6. 將springboot工程項目打包,使用docker封裝。

創建springboot工程

 用IntelliJ IDEA創建一個springboot的web工程springboot-mysql,pom.xml內容如下:

<?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.vincent</groupId>
    <artifactId>springboot-mysql</artifactId>
    <version>1.0-SNAPSHOT</version>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
    </properties>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>2.1.4.RELEASE</version>
                <scope>import</scope>
                <type>pom</type>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <dependencies>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-configuration-processor</artifactId>
            <optional>true</optional>
        </dependency>
        
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.1.6</version>
        </dependency>

        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.40</version>
        </dependency>

    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <version>2.1.4.RELEASE</version>
                <configuration>
                    <mainClass>cn.ac.iie.App</mainClass>
                </configuration>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <configuration>
                    <skip>true</skip>
                </configuration>
            </plugin>
        </plugins>
    </build>

</project>

創建Dao層

@Repository
public class OperatelogDao {

    @Autowired
    private JdbcTemplate jdbcTemplate;
    public void addOperatelog(int id) {
        String sql = "insert into operatelog (id) values (" + id + ")";
        jdbcTemplate.execute(sql);
    }
}

創建Service層的接口和實現

public interface OperatelogService {
    //測試簡單插入一條數據
    void insert(int id);
}

對應實現類,如下所示:

@Service
public class OperatelogServiceImpl implements OperatelogService {

    @Autowired
    OperatelogDao operatelogDao;

    public void insert(int id) {
        operatelogDao.addOperatelog(id);
    }
}

這個方法做的事情很簡單:插入一條數據

mysql連接池配置

在application.properties中添加配置:

spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://docker所在服務器的IP地址:3306/test
spring.datasource.username=root
spring.datasource.password=123456

配置連接池,新建配置類,將配置文件中的屬性裝配到連接池中,如下所示:

@SpringBootConfiguration
public class DBConfiguration {

    @Autowired
    private Environment environment;

    @Bean
    public DataSource createDataSource() {
        DruidDataSource druidDataSource = new DruidDataSource();
        druidDataSource.setUrl(environment.getProperty("spring.datasource.url"));
        druidDataSource.setUsername(environment.getProperty("spring.datasource.username"));
        druidDataSource.setPassword(environment.getProperty("spring.datasource.password"));
        druidDataSource.setDriverClassName(environment.getProperty("spring.datasource.driver-class-name"));
        return druidDataSource;
    }
}

創建controller

創建一個controller為OperatelogController,里面定義一個http接口,做的事情是調用Service層的服務,如下:

@RestController
@RequestMapping("operatelog")
public class OperatelogController {

    @Autowired
    OperatelogService operatelogService;

    @GetMapping("insert")
    public String insert(@RequestParam("id") int id) {
        operatelogService.queryOperateDesc();
        return "SUCCESS";
    }
}

驗證效果

  1. 將這個springboot運行起來(pom.xml所在文件夾下執行mvn spring-boot:run);

  2. 在瀏覽器輸入:http://localhost:8080/operatelog/insert?id=1

  3. 瀏覽器中返回SUCCESS,檢查數據庫中多了一條數據;執行成功;

另外 

如果想將當前springboot也放入到docker容器中運行,也可以將當前項目打包成jar,并上傳到服務器中,新建一個目錄,然后新建Dockerfile文件

Dockerfile內容如下:

FROM java:8-alpine
ADD test-0.0.1-SNAPSHOT.jar app.jar
EXPOSE 8080
ENTRYPOINT ["java", "-jar", "/app.jar"]

在當前目錄下,構建鏡像,然后運行:

docker build -t .
docker run -d -p 8088:8080 test

“如何搭建基于docker環境搭建下springboot-mysql項目框架”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

安阳市| 治多县| 庐江县| 赫章县| 恩平市| 广饶县| 平潭县| 万荣县| 英超| 于田县| 利川市| 汉川市| 格尔木市| 四会市| 屏东县| 新乡县| 东乡族自治县| 堆龙德庆县| 扎赉特旗| 泸溪县| 丰台区| 贵港市| 贡山| 容城县| 海林市| 井冈山市| 姚安县| 余庆县| 广南县| 甘德县| 武鸣县| 茌平县| 吴桥县| 无极县| 八宿县| 葵青区| 越西县| 砀山县| 阿瓦提县| 莱芜市| 元江|