Spring Boot 20天入門(day6)

一羣熱愛技術並且嚮往優秀的程序猿同學,不喜歡水文,不喜歡販賣焦慮,只喜歡談技術,分享的都是技術乾貨。Talk is cheap. Show me the code
在這裏插入圖片描述

Docker

1、什麼是Docker

Docker是一個開源的應用容器引擎,屬於Linux容器的一種封裝,提供簡單易用的容器使用接口。他是目前最流行的Linux容器解決方案。

2、Docker的用途

1)、提供一次性的環境。比如,本地測試他人的軟件、持續集成的時候提供單元測試和構建的環境

2)、提供彈性的雲服務。因爲Docker容器可以隨開隨關,適合動態擴容和縮容

3)、組件微服務架構。通過多個容器,一臺集器可以到多個服務,在本機就可以模擬出微服務架構。

3、Docker安裝

官網有詳細的文檔一步一步教你安裝,在安裝之前,請先保證你的系統內核要是比較高的版本(比如centos7以上,ubuntu16以上),否則是無法安裝的,博主被坑過一次。

docker官方手冊

也可以參考這篇文章

在linux下以二進制的形式安裝docker

4、image文件

Docker把應用程序以及依賴,都打包在imae文件裏面。

通過這個文件,才能生成Docker容器,個人是把他理解成一個容器工廠,每次需要創建容器都由這個工廠來生產。

同一個image文件,可以同時生成多個可運行的容器。

5、Docker常用命令

查詢

如果我們想要創建一個Tomcat的容器,我們得先知道這個容器的依賴存不存在,在命令行執行查詢命令

# 在docker 遠程倉庫(docker hub)中搜索關於tomcat的依賴
docker search tomcat

從左到右依次是:

依賴的名稱,是否是官方的(OFFICIAL表示是官方的),描述,關注的熱度

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-ffbYp6qa-1590045198685)(G:\java文檔\dockersearch.png)]

也可以直接去docker hub上搜索,也是一樣的

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-4dWflc0o-1590045198688)(G:\java文檔\image\dockerhub.png)]

網址在這裏:

友情提示:科學上網比較快噢

docker遠程倉庫

拉取

搜索到對應的依賴後呢,我們就要將依賴下載到image文件夾裏面,在命令行執行命令:

docker pull tomcat

如果你想指定版本號添加,那麼就在後面加上版本號,前提是docker hub中有這個一個版本依賴存在

# 下面以tomcat5.5爲例
docker pull tomcat:5.5

在這裏插入圖片描述

創建並運行容器

下載完依賴之後,我們就可以創建容器並運行了,在命令行執行命令:

# 新建一個容器,取名爲tomcat01,並在後臺運行
docker run --name tomcat01 -d tomcat

使用 docker ps命令查看正在後臺運行的容器

也可以使用 docker ps -a查看所有已經創建的容器

當我們也可以將主機的默認端口映射給容器的一個端口,在命令行中執行命令:

docker run -p 映射端口:8080(主機端口,tomcat的默認端口) --name tomcat01 -d tomcat

在這裏插入圖片描述

停止或重新運行容器

我們如果想要關閉一個正在運行中的容器,在命令行執行命令:

# 這個clientId是運行中的容器的id,可以用docker ps查看 
docker stop cilentId

在這裏插入圖片描述

然後如果我們想要重新運行這個容器,在命令行執行命令:

docker start clintId

刪除容器或刪除鏡像

如果我們不想要一個鏡像怎麼辦?在命令行執行命令:

# iamgeId可以通過docker images查看
docker rmi imageId

在這裏插入圖片描述

如果我們不想要一個容器怎麼辦?在命令行執行命令:

docker rm clientId

在這裏插入圖片描述

查看容器日誌

如果一個容器異常報錯,崩潰退出了怎麼辦,我們可以查看容器的日誌來進行問題的排查,在命令行執行命令:

docker log clintId

Springboot與數據訪問

JDBC

引入相關依賴:

<dependency>
    <artifactId>spring-boot-starter-jdbc</artifactId>
    <groupId>org.springframework.boot</groupId>
</dependency>
<dependency>
     <groupId>MySQL</groupId>
     <artifactId>mysql-connector-java</artifactId>
     <version>8.0.18</version>
</dependency>

數據源配置:

spring:
  datasource:
    username: root
    url: jdbc:mysql://localhost:3306/jdbc1?serverTimezone=UTC  # mysql8.0以上需要配置時區
    driver-class-name: com.mysql.cj.jdbc.Driver
    password: 8761797

效果:

​ Springboot2.x默認是hikari作爲數據源,Springboot2.x以前默認是tomcat jdbc作爲數據源

Springboot整合Druid數據源

引入依賴

<dependency>
    <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
    <version>1.1.8</version>
</dependency>

指定數據源類型

spring:
  datasource:
    username: root
    url: jdbc:mysql://localhost:3306/jdbc1?serverTimezone=UTC
    driver-class-name: com.mysql.cj.jdbc.Driver
    password: 8761797
    type: com.alibaba.druid.pool.DruidDataSource

配置數據源:

@Configuration
public class DruidConfig {

    @ConfigurationProperties(prefix = "spring.datasource")
    @Bean
    public DataSource druid(){
        return new DruidDataSource();
    }

    //配置Druid的監控
    //1、配置一個管理後臺的Servlet
    @Bean
    public ServletRegistrationBean<StatViewServlet> statView(){
        ServletRegistrationBean<StatViewServlet> bean = new ServletRegistrationBean<>(new StatViewServlet(),"/druid/*");
        Map<String,String> initParams = new HashMap<>();
        initParams.put("loginUsername","root");
        initParams.put("loginPassword","8761797");
        initParams.put("allow","localhost");//默認允許所有
        initParams.put("deny","192.168.15.21");
        bean.setInitParameters(initParams);
        return bean;
    }
    //2、配置一個監控的filter
    public FilterRegistrationBean<WebStatFilter> webStatFilter(){
        FilterRegistrationBean<WebStatFilter> bean = new FilterRegistrationBean<>();
        bean.setFilter(new WebStatFilter());
        Map<String,String> initParams = new HashMap<>();
        initParams.put("exclusions","*.js,*.css,/druid/*");
        bean.setInitParameters(initParams);
        bean.setUrlPatterns(Collections.singletonList("/*"));
        return bean;
    }
}

Springboot整合Mybatis

引入依賴

 <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
 </dependency>

註解版

編寫實體類

import java.io.Serializable;

/**
 * @Description : TODO
 * @Author : Weleness
 * @Date : 2020/05/21
 */
public class User implements Serializable {

    private static final long serialVersionUID = 7820095111430235961L;

    private int id;
    private String username;
    private String password;

    public static long getSerialVersionUID() {
        return serialVersionUID;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }
}

數據庫映射:

public interface UserMapper {

    @Select("SELECT * FROM user")
    public List<User> findAll();
}

自定義mybatis配置規則:

@Configuration
public class MybatisConfig {
    
	@Bean
    public ConfigurationCustomizer configurationCustomizer(){
        return new ConfigurationCustomizer() {
            @Override
            public void customize(org.apache.ibatis.session.Configuration configuration) {
                configuration.setMapUnderscoreToCamelCase(true);
            }
        };
    }
}

一次性爲數據庫映射添加@mapper註解:

// 掃描指定的包,把包下的所有類作爲數據庫映射類,爲他們添加@mapper註解
@MapperScan(basePackages = "com.github.springdatajdbc.mapper")
@SpringBootApplication
public class SpringdatajdbcApplication {

    public static void main(String[] args) {
        SpringApplication.run(SpringdatajdbcApplication.class, args);
    }
}

測試:

獲取成功
在這裏插入圖片描述

配置文件版(xml)

創建數據庫的映射xml文件

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.github.springdatajdbc.mapper.UserMapper">

    <select id="findAll" resultType="com.github.springdatajdbc.model">
      SELECT * FROM user;
    </select>
</mapper>

主配置文件:

這裏面可以寫一些其他的配置,比如開啓緩存,綁定mapper

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTO Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">

<configuration>

</configuration>

在配置文件中指定位置:

mybatis:
  config-location: classpath:mybatis-config.xml
  mapper-locations: classpath:*.xml

以上…

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章