IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> SpringBoot笔记 -> 正文阅读

[Java知识库]SpringBoot笔记

1.修改springboot的banner

在springboot的资源目录下创建一个banner.txt文件,如图
在这里插入图片描述
然后在txt文件中放入你的banner……
在这里插入图片描述

2.springboot自动装配原理

springboot自动装配原理
需要配合原码使用

  1. springboot在启动的时候,从类路径下/META-INF/spring.factories获取指定的值;
  2. 将这些自动配置的类导入容器,自动配置就会生效,帮我们进行自动配置;
  3. 以前我们需要自动配置的东西,现在springboot帮我们做了;
  4. 整合javaEE,解决方案和自动配置的东西都在spring-boot-autoconfigure这个包下;
  5. 它会把所有需要导入的组件,以类名的方式返回,这些组件就会被添加到容器;
  6. 容器中也会存在非常多的xxxAutoConfiguration的文件(@Bean),就是这些类给容器中导入了这个场景需要的所有逐渐;并自动配置;
  7. 有了自动配置类,免去了我们手动编写配置文件的工作!

3.yml语法以及ConfigurationProperties注入

在这里插入图片描述
在springboot中,@ConfigurationProperties(prefix = "person")可以通过prefix和yml中的相同前缀的属性绑定,实现配置注入

那么yml文件或者说properties文件是如何与自动装配的属性挂钩的?
在springboot中,自动装配的类都有一个xxxAutoConfiguration的类,在该类中,一般会有一个@EnableConfigurationProperties的注解,这个注解会引入一个Properties类,该类由@ConfigurationProperties注解,因此,该类中的属性就是我们在yml文件或是properties文件中关联的值。

如果说想要知道哪些自动配置类生效了哪些没生效,也可以在yml中设置debug=true来进行查看

4.JSR-303校验

在springboot中,可以使用@Validated注解来进行JSR-303的校验
具体到需要校验的属性可以在属性上使用相应的注解进行校验,注解如下
在这里插入图片描述

5.yml中进行多环境配置

在实际开发中,可能有很多套环境,例如默认环境、开发环境、测试环境等
在yml中,可以通过---的方式在同一个yml文件中拆分出不同环境,如下:

server:
  port: 801
spring:
  profiles:
    active: dev
---
server:
  port: 802
spring:
  profiles: dev

---
server:
  port: 803
spring:
  profiles: test

需要切换环境,只需要在默认环境中使用spring.profiles.active配置即可

6.静态资源处理

  1. 在springboot中,可以通过以下方式访问静态资源
    • webjars 具体映射到页面localhost:8080/webjars
    • public,static,/**,resources localhost:8080/
  2. 优先级resources>static>public

7.数据库操作

  1. JDBC的使用
    这个只需要在yml文件中进行配置即可
spring:
  datasource:
    username: xxxx
    password: xxxx
    url: jdbc:mysql://localhost:3306/xxxx?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8&
    driver-class-name: com.mysql.cj.jdbc.Driver
  1. DRUID数据源的使用
    要使用德鲁伊的数据源,只需要在jdbc的数据源的基础上增加一个type配置
spring:
  datasource:
    username: root
    password: q1111111111
    url: jdbc:mysql://localhost:3306/novel?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8&
    driver-class-name: com.mysql.cj.jdbc.Driver
    type: com.alibaba.druid.pool.DruidDataSource

当然,在此之前,需要先导入德鲁伊的依赖

        <!--德鲁伊数据源-->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.2.8</version>
        </dependency>

更多的德鲁伊的相关配置以及德鲁伊后台监控的使用

德鲁伊的部分参数配置

server:
  port: 801
spring:
  datasource:
    username: root
    password: q1111111111
    url: jdbc:mysql://localhost:3306/novel?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8&
    driver-class-name: com.mysql.cj.jdbc.Driver
    type: com.alibaba.druid.pool.DruidDataSource

    #德鲁伊数据源配置
    #springboot默认是不配置这些值的,需要自己来绑定
    initialSize: 5
    minIdel: 5
    maxActive: 20
    maxWait: 60000
    timeBetweenEvictionRunsMillis: 60000
    minEvictableIdleTimeMillis: 300000
    validationQuery: SELECT 1 FROM DUAL
    testWhileIdle: true
    testOnBorrow: false
    testOnReturn: false
    poolPreparedStatements: true


    #配置监控统计拦截的filters,stat:监控统计、log4j:日志记录、wall:防御sql注入
    #如果允许报错 java.lang.ClassNotFoundException:org.apache.log4j.priority
    #则导入log4j依赖即可,Maven地址: https://mvnrepository.com/artifact/log4j/log4j
    filters: stat,wall,log4j
    maxPoolPreparedStatementPerConnectionSize: 20
    useGlobalDataSourceStat: true
    connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=500

如果需要使用这些自己配置的参数以及配置德鲁伊的后台,需要自己创建一个配置类

package com.wxk.hello.config;


import com.alibaba.druid.pool.DruidDataSource;
import com.alibaba.druid.support.http.StatViewServlet;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.web.servlet.ServletRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import javax.sql.DataSource;
import java.util.HashMap;

@Configuration
public class DruidConfig {
	//yml注入
    @ConfigurationProperties(prefix = "spring.datasource")
    @Bean
    public DataSource druidDataSource(){
        return new DruidDataSource();
    }

    //后台监控
    //在springboot中没有web.xml,因此想要注册什么东西东西可以依靠ServletRegistrationBean
    @Bean
    public ServletRegistrationBean statViewServlet(){
        ServletRegistrationBean<StatViewServlet> bean=new ServletRegistrationBean<>(new StatViewServlet(),"/druid/*");

        //登陆后台的账号密码设置
        HashMap<String , String> initParameter = new HashMap<>();
        //账号密码
        initParameter.put("loginUsername","admin");//key是固定的
        initParameter.put("loginPassword","123456");
        //允许谁可以访问
        initParameter.put("allow","");
        bean.setInitParameters(initParameter);//设置初始化参数
        return bean;
    }
}

  1. mybatis整合及使用
    首先在中央仓库找到mybatis的starter依赖,安装好依赖后,在yml文件中进行如下配置
    mybatis:
      mapper-locations: classpath:mybatis/mapper/*.xml
    
    这个配置是你的映射文件的位置,配置好这个后就可以使用了
    具体使用:
    //这个注解表示这是一个mapper类
    @Mapper
    @Repository
    public interface BooksMapper {
        List<Book> queryBooks();
    }
    
    	<?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.wxk.hello.mapper.BooksMapper">
    	
    	    <select id="queryBooks" resultType="com.wxk.hello.vo.Book">
    	        select * from book
    	    </select>
    	</mapper>
    

8.thymeleaf常用约束

xmlns:th=http://www.thymeleaf.org
xmlns:sec=http://www.thymeleaf.org/extras/spring-security
xmlns:shiro=http://www.pollix.at/thymeleaf/shiro
  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-10-07 13:43:18  更:2021-10-07 13:44:56 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 18:30:50-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码