首页 > 其他分享 >学习-03

学习-03

时间:2023-04-16 12:55:39浏览次数:37  
标签:03 springboot 配置文件 spring boot druid 学习 org

1.课程大纲-springboot框架

1. 什么是Springboot以及Springboot的特点。
2. 快速搭建springboot项目
3. springboot常用的配置文件类型.
4. 读取springboot配置文件的内容
5. 多环境配置
6. springboot整合数据源。
7. springboot整合mybatis.
8. springboot整合定时器。

2. 什么是Springboot以及Springboot的特点。

2.1 什么是springboot?

Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化Spring应用的初始搭建以及开发过程 . 理解:spring框架搭建的步骤:[1]依赖 [2]配置文件。 使用springboot可以简化上面的两个步骤。

2.2 springboot的特点

① 创建独立的 Spring 应用程序

② 嵌入的 Tomcat,无需部署 WAR 文件

③ 简化 Maven 配置

④ 自动配置 Spring

⑤ 提供生产就绪型功能,如指标,健康检查和外部配置

⑥ 开箱即用,没有代码生成,也无需 XML 配置。

3. 使用idea快速搭建springboot工程

3.1 在有网的情况

创建一个controller包

@RestController
public class HelloWorldController {

    @GetMapping("index")
    public Map<String,Object> hello(){
        Map<String,Object> map=new HashMap<>();
        map.put("name","刘晓辉");
        map.put("age",18);
        return map;
    }
}

浏览器访问接口

4.pringboot常用的配置文件类型.

properties和yml格式。他们的区别就是格式上不同。

properties格式如下:

#修改端口号
server.port=8888
# 修改上下文路径
server.servlet.context-path=/aaa

yml结构

server:
  port: 8887
  servlet:
    context-path: /bbb

不管使用哪个配置文件,他们的名字必须叫application. 如果上面两个配置文件同时存在,而且里面有相同的配置。则properties优先级高于yml优先级。

4分钟

5. java如何读取配置文件中的内容

java为什么需要读取配置文件的内容,我们开发时需要把哪些内容放入配置文件。

OSS:上传文件。accessKeyId,accessKeySecret等,这些内容能写在java源代码中。硬编码文件,不利维护。 我们需要把信息写入配置文件。

读取方式有两种:

第一种方式: 在类上@ConfigurationProperties(prefix="")

@Data
@Component
@ConfigurationProperties(prefix = "student")
public class Student {
    private String name;
    private Integer age;
    private String address;
    private List<String> hobby;
    private Map<String,Object> map;
}

第二种使用@Value读取属性:---他只能读取基本类型和String类型。加在属性上

    @Value("${student.map}")
    private Map<String,Object> map;

    @GetMapping("a")
    public Map<String,Object> a(){
        return map;
    }

6. springboot整合数据源

druid数据源: ----连接数据库

(1)引入相关的依赖。

       <!--mysql的驱动依赖-->
 <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-spring-boot-starter</artifactId>
            <version>1.1.21</version>
        </dependency>

(2)配置数据源信息

spring.datasource.druid.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.druid.url=jdbc:mysql://localhost:3306/company?serverTimezone=Asia/Shanghai
spring.datasource.druid.username=root
spring.datasource.druid.password=root
spring.datasource.druid.initial-size=5

(3)测试

@SpringBootTest
class Qy163Springboot01ApplicationTests {

    @Autowired
    private DataSource dataSource;
    @Test
    void contextLoads() throws Exception{
        System.out.println(dataSource);
    }

}

6分钟

7. springboot整合mybatis

(1)相关依赖

<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.3.12.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.ykq</groupId>
    <artifactId>qy163-springboot02</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>qy163-springboot02</name>
    <description>Demo project for Spring Boot</description>
    <properties>
        <java.version>1.8</java.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>
        <!--mybatis和springboot整合的依赖 启动依赖-->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.1.4</version>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-starter</artifactId>
            <version>1.1.21</version>
        </dependency>

        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <excludes>
                        <exclude>
                            <groupId>org.projectlombok</groupId>
                            <artifactId>lombok</artifactId>
                        </exclude>
                    </excludes>
                </configuration>
            </plugin>
        </plugins>
    </build>

</project>

(2)修改配置文件

#数据源
spring.datasource.druid.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.druid.username=root
spring.datasource.druid.password=root
spring.datasource.druid.url=jdbc:mysql://localhost:3306/company

#指定映射文件所在的路径--
mybatis.mapper-locations=classpath:mapper/*.xml

#mybatis日志文件
mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl

org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.ykq.mapper.EmpMapper.findAll

(3) mapper接口

public interface EmpMapper {
    public List<Emp> findAll();
}

(4)为mapper接口生成代理实现类

(5)测试

@SpringBootTest
class Qy163Springboot02ApplicationTests {

    @Autowired
    private EmpMapper empMapper;
    @Test
    void contextLoads() {
        System.out.println(empMapper.findAll());
    }

}

标签:03,springboot,配置文件,spring,boot,druid,学习,org
From: https://www.cnblogs.com/av404/p/17323111.html

相关文章

  • 学习04
    1.回顾1.springboot概述:简化spring工程的搭建。2.springboot配置文件:(1)properties(2)yml语法格式3.java代码如何获取配置文件中的内容。[1]类上加个注解@ConfigurationProperties(prefix="")[2]在属性上@Value("${key}")----只能读取基本和字符串。4.spr......
  • 学习-02
    1.ssm整合maven环境:本地仓库和镜像【阿里镜像|私服】1.1创建一个maven的web工程1.2pom引入相关依赖<?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-ins......
  • Spring事务学习
    spring将事务管理的逻辑和数据访问的逻辑分开管理,但是每一个数据访问dao都需要同一个Connection对象,这时,spring会在事务开始的时候将connection设置到一个ThreadLocal中,在dao中,就从这个ThreadLocal中拿到Connection。/***声明式事务demo*/publicvoidtranfer(){......
  • Vue2.0 学习 第三组 条件语句
    本笔记主要参考菜鸟教程和官方文档编写。1.v-if在div或者之类的dom中使用v-if可以控制是否插入该dom,控制由v-if的true和false决定。如:<divid="app"><divv-if="test"></div></div><script>newVue({el:"#app",data:{test:true}})</script>2.v-show......
  • 9、数据库学习规划:Oracle - 学习规划系列文章
          甲骨文公司的Oracle数据库是笔者认为的目前市面上性能最强大的数据库。其版本也发展到了现在的12c,提供的功能也更加的强大了。以前笔者使用的是9i,十几年过去了,也才发展到12代,说明Oracle数据库的性能和底层技术是非常完善和强大的了。 1、简介;Oracle公司......
  • 10、数据库学习规划:MySQL - 学习规划系列文章
          MySQL数据库是笔者认识的几个流行的数据库之一。类似于Linux重装系统,其也是开源的,最主要是有很多的社区支持,众多的开发者对其能够进行使用,所以其功能也挺强大,便于使用。通过对MySQL数据库的学习,笔者认为其是现今贡献最大和使用最广泛的数据库。因为其有社区版,能够免......
  • 最小生成树学习笔记
    定义最小生成树是指给定一个带权连通图G,如果里面有一个子图G'中的边权和加起来最小并且使得所有的点都能两两相通。性质从上述的定义可以看出,最小生成树有以下性质:如果图G中有n个点的话,G'中的边数为n-1且G'中不含有环。最小生成树可能是一个,也可能是多个。......
  • 李宏毅机器学习——pytorch
    什么是pytorchpython机器学习框架,Facebook提出,主要有一下两个特点使用GPU加速高维矩阵的运算torch.cuda.is_available()x=x.to('cuda')可以很方便的实现梯度的计算requires_grad=True指定需要对变量x计算梯度z是x的函数,调用z.backward()反向传播计算梯度x.grad属性......
  • Mathematica学习笔记002-数据导入导出
    如果不能把数据导入导出,Mathematica就只能是个大号计算器了。学会了导入导出,一方面可以把数据、图像结果保存,另一方面也可以将别的程序的中间结果导出成(txt或xls格式),然后交给Mathematica处理,让骑完成高精度计算和绘图。基本操作其实很简单Export["D:\\abc.txt",{{1,2},{3,4......
  • 微信小程序开发(学习记录1.0)
    首先,把遇到的问题贴出来,主要是这个解决问题的思路,供大家参考。现在的问题是将下面的导航栏做出来,但是在自己做的时候遇到的问题在app.json文件中输入tarBar,就会生成模板代码,默认会生成一个list的模板代码,几个list就是下面的导航栏有几部分,我们想要分成三部分,所以我们就会有三个lis......