首页 > 其他分享 >springboot学习随笔

springboot学习随笔

时间:2023-04-13 09:22:54浏览次数:44  
标签:springboot 配置文件 spring boot druid 学习 datasource 随笔

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=2222
# 修改上下文路径
server.servlet.context-path=/ace

yml结构

server:
  port: 4444
  servlet:
    context-path: /ace

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

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 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/agito?serverTimezone=Asia/Shanghai
spring.datasource.druid.username=root
spring.datasource.druid.password=123456
spring.datasource.druid.initial-size=6

(3)测试

@SpringBootTest
class MarieBootApplicationTests {

    @Autowired
    private DataSource dataSource;

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

}

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.7.10</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.example</groupId>
    <artifactId>marie-boot</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>marie-boot</name>
    <description>marie-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>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>

<!--        数据源引入-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.30</version>
        </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>

    </dependencies>
    

</project>

(2)修改配置文件

#数据源
spring.datasource.druid.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.druid.url=jdbc:mysql://localhost:3306/555?serverTimezone=Asia/Shanghai
spring.datasource.druid.username=root
spring.datasource.druid.password=123456

#指定映射文件所在的路径--
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 StudentMapper {
    public List<Student> findAll();
}

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

(5)测试

@SpringBootTest
class MarieBoot2ApplicationTests {

    @Resource
    private StudentMapper studentMapper;

    @Test
    void contextLoads() {
        System.out.println(studentMapper.findAll());
    }

标签:springboot,配置文件,spring,boot,druid,学习,datasource,随笔
From: https://www.cnblogs.com/beiluo1024/p/17312155.html

相关文章

  • 学习笔记397—Docker数据管理
    Docker有两种数据管理的方式数据卷:容器内数据直接映射到本地主机环境;数据卷容器:使用特定容器维护数据卷.数据卷数据卷是一个可供容器使用的特殊==目录==,它将主机操作系统目录直接映射进容器数据卷的特性:可以在容器之间共享和重用,容器间传递数据将变得高效与方......
  • Redis学习
    打开redis服务在redis的解压路径下找到redis-server.exe双击即可弹出这个窗体,不要关闭!关闭服务也关了打开redis客户端在redis的解压路径下找到redis-cli.exe双击即可基本命令key操作命令1、获取所有键语法:keyspattern127.0.0.1:6379#keys*"age"查找匹配给定......
  • 四月学习之LVS基本概述
    一、LVS基本概述1、什么是LVSLVS的英文全称是linuxvirtualserver,即linux虚拟服务器,其实它是一种cluster集群技术,主要用于负载均衡,将用户请求均匀的调度到不同的服务器上执行注意:LVS是基于四层IP:PROT的负载均衡2、为何需要LVS1、解决七层端口数不够问题,实现百万连接2、解......
  • 今日总结-python连接数据库的学习
          ......
  • SpringBoot向web容器注入Servlet,Filter及SpringSecurity注册DelegatingFilterProxy
    从SpringSecurity架构图可知SpringSecurity的过滤器与Web容器的过滤器是通过DelegatingFilterProxy接入的。由DelegatingFilterProxy代理了FilterChainProxy,FilterChainProxy包含了SpringSecurity的过滤器链。 那么DelegatingFilterProxy是怎么创建及如何加入到Web容器中? 看......
  • 18.四数之和——学习笔记
    题目:给你一个由n个整数组成的数组nums,和一个目标值target。请你找出并返回满足下述全部条件且不重复的四元组[nums[a],nums[b],nums[c],nums[d]](若两个四元组元素一一对应,则认为两个四元组重复):0<=a,b,c,d<na、b、c和d互不相同nums[a]+nums[b]+nums[c......
  • 15.三数之和——学习笔记
    题目:给你一个整数数组nums,判断是否存在三元组[nums[i],nums[j],nums[k]]满足i!=j、i!=k且j!=k,同时还满足nums[i]+nums[j]+nums[k]==0。请你返回所有和为0且不重复的三元组。注意:答案中不可以包含重复的三元组。示例1:输入:nums=[-1,0,1,2,-1,-4]输......
  • 哈希表理论基础——学习笔记
    常见的三种哈希结构数组set(集合)map(映射)HashSet特点:HashSet无序(没有下标),不可重复HashSet为HashMap的key部分TreeSetTreeSet无序(没下标),不可重复,但是可以排序TreeSet为TreeMap的key部分mapMap和Collection没有继承关系Map以(k......
  • 383.赎金信——学习笔记
    题目:给你两个字符串:ransomNote和magazine,判断ransomNote能不能由magazine里面的字符构成。如果可以,返回true;否则返回false。magazine中的每个字符只能在ransomNote中使用一次。示例1:输入:ransomNote="a",magazine="b"输出:false示例2:输入:ransomNote="a......
  • 242.有效的字母异位词——学习笔记
    题目:给定两个字符串s和t,编写一个函数来判断t是否是s的字母异位词。注意:若s和t中每个字符出现的次数都相同,则称s和t互为字母异位词。示例1:输入:s="anagram",t="nagaram"输出:true示例2:输入:s="rat",t="car"输出:false提示:1<=s.length,......