一、什么是SpringBoot

springboot 是 spring 项目中的一个子工程,也被称为搭建程序的脚手架,可以快速的构建spring项目。boot相对于之前的spring 主要解决了两个问题,
      复杂的配置和混乱的依赖管理(不同的jar包版本兼容问题)。

二、boot 特点:

内置tomcat,jetty和undertow(不需要打包成war包部署)
       提供了固定的starter配置,简化构建配置
       自动配置spring和第三方库

三、boot要知道的注解:

1、@EnableAutoConfiguration 开启自动配置(比如引用了`spring-boot-starter-web`,而这个启动器中帮我们添加了`tomcat`、`SpringMVC`的依赖。)
       2、@ComponentScan 开启注解扫描,(> 通过basePackageClasses或者basePackages属性来指定要扫描的包。
         如果没有指定这些属性,那么将从声明这个注解的类所在的包开始,扫描包及子包
            而我们的@ComponentScan注解声明的类就是main函数所在的启动类,因此扫描的包是该类所在包及其子包)
        3、@SpringBootApplication,发现@SpringBootApplication其实是一个组合注解,这里重点的注解有3个:

- @SpringBootConfiguration :申明是个配置类
- @EnableAutoConfiguration:开启自动配置
- @ComponentScan:开启注解扫描

四、boot的属性注入

1、新建JdbcProperties,用来进行属性注入:

  • 在类上通过@ConfigurationProperties注解声明当前类为属性读取类

  • prefix="jdbc"读取属性文件中,前缀为jdbc的值。

  • 在类上定义各个属性,名称必须与属性文件中jdbc.后面部分一致,并且必须具有getter和setter方法

   2、在JdbcConfiguration中使用这个属性:

  • 通过@EnableConfigurationProperties(JdbcProperties.class)来声明要使用JdbcProperties这个类的对象

  • 然后你可以通过以下方式在JdbcConfiguration类中注入JdbcProperties:

    1. @Autowired注入     (全局变量加注解直接注入)

    2. 构造函数注入 (定义一个去全局变量 ,构造函数里给这个变量赋值)

    3. @bean方法的参数注入 (类上加注解@EnableConfigurationProperties 参数传递定义的配置类)

五、boot的配置:

使用类和一些注解来达到和xml一样的效果,典型的几个:

1、@Configuration`:声明一个类作为配置类,代替xml文件
2、@Bean`:声明在方法上,将方法的返回值加入Bean容器,代替`<bean>`标签
3、@Value`:属性注入 
4、@PropertySource`:指定外部属性文件。

六、添加一个拦截器:

拦截器interceptor比较实用,例如记录某个接口的访问过程等,

1、定义一个拦截器类,实现handlerInterceptor 接口,重写该接口的方法 请求前 请求后 post请求 拦截做一些操作。

@Component
public class MyInterceptor implements HandlerInterceptor {@Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {System.out.println("preHandle method is running!");return true;}@Overridepublic void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {System.out.println("postHandle method is running!");}@Overridepublic void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {System.out.println("afterCompletion method is running!");}
}

2、定义一个配置类,注册定义好的拦截器,实现webmvcConfigr接口,重写 addInterceptor方法,添加进去。

@Configuration
public class MvcConfiguration implements WebMvcConfigurer {@Autowiredprivate HandlerInterceptor myInterceptor;/*** 重写接口中的addInterceptors方法,添加自定义拦截器* @param registry*/@Overridepublic void addInterceptors(InterceptorRegistry registry) {registry.addInterceptor(myInterceptor).addPathPatterns("/**");}
}

3、运行并查看日志:

preHandle method is running!
postHandle method is running!
afterCompletion method is running!

你会发现日志中只有这些打印信息,springMVC的日志信息都没有,因为springMVC记录的log级别是debug,springboot默认是显示info以上,我们需要进行配置。

SpringBoot通过logging.level.*=debug来配置日志级别,*填写包名

# 设置org.springframework包的日志级别为debug
logging.level.org.springframework=debug

就可以看到mvc的运行日志

SpringBoot简述相关推荐

  1. springboot——pom.xml 配置文件的设置

    软件152 蒲双 一.springboot简述概念 从最根本上来讲,Spring Boot就是一些库的集合,它能够被任意项目的构建系统所使用.简便起见,该框架也提供了命令行界面,它可以用来运行和测试B ...

  2. 微服务常见面试题(Java、数据库、Redis、SpringCloud面试题)

    Redis 本质上是一个 Key-Value 类型的内存数据库,很像memcached,整个数据库统统加载在内存当中进行操作,定期通过异步操作把数据库数据 flush 到硬 盘上进行保存. 因为是纯内 ...

  3. 微服务常见面试题(Java、数据库、Redis面试题)

    Redis 本质上是一个 Key-Value 类型的内存数据库,很像memcached,整个数据库统统加载在内存当中进行操作,定期通过异步操作把数据库数据 flush 到硬 盘上进行保存. 因为是纯内 ...

  4. 简述SpringBoot Starter原理及自定义实现

    简述SpringBoot Starter原理及自定义实现 一.简述 二.结合SpringBoot启动原理看容器如何实现自动装配 三.解析mybatis-spring-boot-starter包看myb ...

  5. Springboot启动流程简述

    Springboot提高了开发效率,简化了配置,往往使用一些注解就可以使项目跑起来,下面理一下Springboot的启动流程.Springboot版本:2.2.4.RELEASE 以下是一个常见的Sp ...

  6. 二、SpringBoot配置-简述配置加载原理

    springboot使用一个全局配置文件 application.properties application.yml 配置文件放在src/main/resources目录或者类路径/config下 ...

  7. 简述Spring、SpringMVC、SpringBoot关系?

    1.Spring Spring是一个轻量级的Java开发框架,核心是SpringIOC(控制反转)和SpringAOP(面向切面),针对开发的web层.业务层.持久层等都提供了多种配置解决方案. 主要 ...

  8. 记录这两年的学习以及简述这次基于springboot框架的课程设计和打war包部署的坑

    一.前言 一想都是满满的经历呀.如果不想看我废话,可以直接跳到后面. 1 关于编程 1.1 C.C++ 作为一名软件工程生,编程是我以后自力更生的必备技能.奈何大一的我不懂得轻重,基本没有把精力放在编 ...

  9. SpringBoot史前简述

    背景 大约20年前,程序员们使用"企业级Java Bean"(EJB)开发企业应用,需要配置复杂的XML. 在二十世纪初期,新兴Java技术--Spring,横空出世.使用极简XM ...

最新文章

  1. 检测主机是否在线小脚本
  2. C++使用Merge Sort排序计数反转的实现算法(附完整源码)
  3. webserver介绍与实现(利用各模块的封装实现)
  4. win7_64 安装 caffe
  5. 同济大学计算机保研名单,同济大学2021届保研率27.8%,主要保研本校、复交清国...
  6. python编程框架_python编程基础框架
  7. linux 设置注释颜色,【转】vim注释和光标高亮行列的颜色设置
  8. 打印学生选课清单(25分) c++实现
  9. 陆奇加入拼多多,担任技术委员会主席!
  10. 青青日记app界面原型
  11. (2/2) sharex录制屏幕没有声音,升级高版本的 sharex
  12. 从微信打开链接不能正常上下滑动
  13. 系统设计开发模式思考
  14. uni-app 184查看好友朋友圈完善(五)
  15. 凤凰卫视:收受瑞星巨额贿赂官员被捕视频
  16. 哈希表冲突及处理冲突的方法(含例子)
  17. playwright python版本学习五-->locator常用定位总结
  18. 【6S管理操作手册】
  19. 多任务进化优化算法(一)——多因子进化算法(MFEA)
  20. 关于猜数字游戏的实现

热门文章

  1. 【JS】——数组拼接的多种方式包括ES6写法
  2. 牛客网比赛-Wannafly挑战赛27
  3. 面具busybox模块_使用 linux kernel +busybox 定制linux系统
  4. HTTPS网址怎么实现
  5. 安卓逆向-某音乐软件
  6. RobotFramework 之 数据驱动
  7. 在线学习DITA(英文)
  8. c语言十进制转换八进制和十六进制
  9. matlab中文help,matlab中文帮助文档.pdf
  10. window onunload使用