Springboot

回顾spring

优点:

不足:

1、配置重量级,大量的模板化配置,示例:

复制代码
<!-- 开启注解spring事务管理 -->
<tx:annotation-driven transaction-manager="transactionManager"/>


<!--开启 springWeb 注解-->
<mvc:annotation-driven></mvc:annotation-driven>

2、需要我们自己添加框架或者项目需要的依赖jar,如果版本不匹配,会出现兼容问题

springboot

实在spring框架基础上对spring框架的搭建过程进行了封装,使得开发人员可以快速搭建起一个商业级的spring应用程序。

搭建过程简化体现

1、使用约定优于配置的思想,把很多开发中的默认的做法直接进行了简化(注解、事务...)

2、自动的将相关的依赖集成进来(基础性的、项目必须的)

springboot搭建过程

1、创建一个普通的maven项目,

2、在pom.xml中添加依赖

复制代码
<!--依赖的父级工程-->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.6.6</version>
        <relativePath/>
    </parent>

    <!--指定 jdk 版本-->
    <properties>
        <java.version>1.8</java.version>
    </properties>

    <!--添加基本的 springWeb 依赖-->
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>

    <!--打包插件-->
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <version>2.6.6</version>
            </plugin>
        </plugins>
    </build>

3、创建基本包目录,在包下创建一个启动类

启动类示例,添加注解@SpringBootApplication扫描这个类下的所有包,包目录就是在这个类下。

复制代码
package com.ffyc.news;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication//扫描这个类下的所有包
public class NewsApplication {
    public static void main(String[] args) {
        SpringApplication.run(NewsApplication.class);
    }
}

springboot集成web组件后,内置了Tomcat服务器,一个springboot应用相当于一个独立的服务,使用启动类的main方法启动springboot程序。

spring boot配置文件

spring boot使用一个全局的配置文件(配置文件名固定的,必须为application),用来存储项目用的各种参数配置。

配置文件名有俩种格式,一种是properties格式,另一种是yaml格式。

application.properties属于文件格式,内容是键值对形式,

properties的格式是叫为简单的

yml是yaml(YAML Ain't Markup Language)语言的文件,以数据为中心

yml基本语法:

语法结构:空格key:空格value (空格不能省略),以此来表示键值对,以空格缩进的方式控制层级关系,只要左边对齐则说明是同一级关系。

spring boot数据访问管理

1、先导入数据源,在pom.xml中引入spring+jdbc依赖,因为为了连接引入数据库需要引入jdbc支持

复制代码
 <!--spring jdbc-->
    <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>

2、在application.yml中进行数据源配置

复制代码
spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://127.0.0.1:3306/ssmdb?serverTimezone=Asia/Shanghai
    username: root
    password: root

3、spring boot整合阿里数据源

导入阿里源的jar、在application.xml中进行注册阿里数据库连接池,和password是同一级

复制代码
type: com.alibaba.druid.pool.DruidDataSource #指定数据库连接对象
initialSize: 5 #初始化时建立物理连接的个数
maxActive: 20 #最大连接池数量

spring boot集成mybatis

1、导入springboot+mybatis的依赖

复制代码
<!--spring+mybatis-->
<dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>2.1.4</version>
</dependency>

2、在application.xml中进行配置

复制代码
# spring boot集成mybatis
mybatis:
  type-aliases-package: com.ffyc.news.model
  mapper-locations: classpath:mapper/*Mapper.xml
  configuration:
    map-underscore-to-camel-case: true
    cache-enabled: true
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

3、在启动类上添加@MapperScan(接口所在的包的地址)

springboot集成日志功能

1、在application中进行配置,日志级别和日志文件路径

复制代码
logging:
  level:
    com.ffyc.news: debug  日志级别
  file:
    name: E:/log/log.log  日志文件位置,不用自己创建,启动时会自动创建

2、在需要打印日志的类中创建Logger对象在类中使用

复制代码
private static Logger logger = LoggerFactory.getLogger(当前类名.class);
//在需要的位置调用具体的日志级别方法输出

日志级别划分:debug<info<warn<error,在application.yml中配置的是debug,所以日志打印会将四个级别都打印出。(日志打印只会打印比自己高级别的类型,如果配置的是info则debug不会打印出来)

spring boot使用AOP统一打印日志

1、导入依赖jar

复制代码
<!--aop 日志打印-->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-aop</artifactId>
</dependency>

2、在application.yml中进行配置

复制代码
logging:
  level:
    com.ffyc.news: debug
  file:
    name: E:/log/log.log

3、定义切面通知类

复制代码
@Component
@Aspect
public class LogAspect {
private Logger logger = LoggerFactory.getLogger(LogAspect.class);
@Before("execution(public * com.ffyc.news.web..*.*(..))")
public void savelog(JoinPoint joinPoint) {
ServletRequestAttributes attributes =
(ServletRequestAttributes)RequestContextHolder.getRequestAttributes();
HttpServletRequest request = attributes.getRequest();
//Object[] objs = joinPoint.getArgs();获取方法参数
// 记录下请求内容
logger.info("HTTP_METHOD :{} ", request.getMethod());
logger.info("IP : {}", request.getRemoteAddr());//客户端 ip
}
}
相关推荐
CodeAmaz1 分钟前
Spring编程式事务详解
java·数据库·spring
没有bug.的程序员3 分钟前
微服务基础设施清单:必须、应该、可以、无需的四级分类指南
java·jvm·微服务·云原生·容器·架构
武子康6 分钟前
Java-204 RabbitMQ Connection/Channel 工作流程:AMQP 发布消费、抓包帧结构与常见坑
java·分布式·消息队列·rabbitmq·ruby·java-activemq
郑州光合科技余经理7 分钟前
海外国际版同城服务系统开发:PHP技术栈
java·大数据·开发语言·前端·人工智能·架构·php
appearappear17 分钟前
Mac 上重新安装了Cursor 2.2.30,重新配置 springboot 过程记录
java·spring boot·后端
CryptoRzz26 分钟前
日本股票 API 对接实战指南(实时行情与 IPO 专题)
java·开发语言·python·区块链·maven
程序员水自流28 分钟前
MySQL数据库自带系统数据库功能介绍
java·数据库·mysql·oracle
谷哥的小弟33 分钟前
Spring Framework源码解析——RequestContext
java·后端·spring·框架·源码
天远Date Lab39 分钟前
Java微服务实战:聚合型“全能小微企业报告”接口的调用与数据清洗
java·大数据·python·微服务
lizz3143 分钟前
C++操作符重载深度解析
java·c++·算法