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

以上…

猜你喜欢

转载自blog.csdn.net/WXZCYQ/article/details/106258786