boot

(22)Spring Boot 拦截器HandlerInterceptor【从零开始学Spring Boot】

Deadly 提交于 2020-02-12 05:48:23
上一篇对过滤器的定义做了说明,也比较简单。过滤器属于 Servlet 范畴的 API ,与 Spring 没什么关系。 Web 开发中,我们除了使用 Filter 来过滤请 web 求外,还可以使用 Spring 提供的 HandlerInterceptor (拦截器)。 HandlerInterceptor 的功能跟过滤器类似,但是提供更精细的的控制能力:在 request 被响应之前、 request 被响应之后、视图渲染之前以及 request 全部结束之后。我们不能通过拦截器修改 request 内容,但是可以通过抛出异常(或者返回 false )来暂停 request 的执行。 实现 UserRoleAuthorizationInterceptor 的拦截器有: ConversionServiceExposingInterceptor CorsInterceptor LocaleChangeInterceptor PathExposingHandlerInterceptor ResourceUrlProviderExposingInterceptor ThemeChangeInterceptor UriTemplateVariablesHandlerInterceptor UserRoleAuthorizationInterceptor 其中

70.打印所有Spring boot载入的bean【从零开始学Spring Boot】

我的未来我决定 提交于 2020-02-12 04:08:04
【从零开始学习 Spirng Boot— 常见异常汇总】 问题的提出: 我们在开发过程当中,我们可能会碰到这样的问题: No qualifying bean 就是我们定义的 bean 无法进行注入,那到底是什么原因呢,有时候挺难定位的,当然这个也需要养成良好的编码习惯,这样也会降低出错的几率。 那么一般说是 No quanlifying bean 很有可能就是我们没有使用注解或者 xml 注入我们的 bean, 要么就是我们 bean 的名称不是我们注入时指定的名称,那么我们就会想如何查看已经载入到 spring boot 的 bean 呢? 其实这个操作起来很简单,看如下介绍知道了。 Spring main 方法启动 我们以前写代码在 main 方法的启动类基本上就一行代码,看如下: SpringApplication. run (ApiCoreApp. class , args ); 我们只需要稍微调整下就可以获取到 ApplicationContext 上下文了,在这个类中就可以有很多的方法进行操作了,修改为如下: ApplicationContext ctx = SpringApplication. run (ApiCoreApp. class , args ); 有了 ctx 那么接下来就很简单了: 第一种情况获取所有的 beans: ApplicationContext

Spring Boot——[Spring Boot Configuration Annotation Processor not found in classpath]解决方案

北慕城南 提交于 2020-02-11 14:37:58
问题描述 使用Spring Boot开发的过程中,写读取Properties配置文件的配置类时提示Spring Boot configuration annotation processor not found in classpath,如下截图所示: 官方文档 https://docs.spring.io/spring-boot/docs/2.0.1.RELEASE/reference/html/configuration-metadata.html#configuration-metadata-annotation-processor 问题分析 解决方案 在maven中导入自动装配映射的依赖包 在pom.xml文件中加入依赖spring-boot-configuration-processor <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-configuration-processor</artifactId> <optional>true</optional> </dependency> 参考文章 https://blog.csdn.net/qinxian20120/article/details/80252894 https://blog.csdn.net

使用电脑adb给Essential Phone刷机 —(官方篇)

假装没事ソ 提交于 2020-02-11 02:41:25
用ADB给Essential Phone线刷升级 重要:请确保在刷机前已经解锁,关于解锁教程群里有! 准备 原版boot Twrp boot Magisk卡刷包 到官网下载OTA包 准备好Essential Phone的adb环境或到群里下载紫妈工具箱 (已准备好的话跳过下面这两步) 获取资源 获取原版boot 解压官方fastboot包,找到解压出来的文件夹,找到boot.img 获取twrp boot 点击 提取码:asp2 下载Twrp, 将下载好的文件改名为 twrp 下载Magisk 点击 Magisk V18.0 密码:85pq 下载Magisk V18.0 下载OTA包 使用ssr等工具进入官网 EP官网 找到Community菜单,进入该菜单项的Developer选项 到左边找到Go to page标题,选择Android Builds for Essential Phone进入 滚轮滑到最下面,选择Current Builds单选项并按Submit Form (省略前三部请单击 这里 ) (到这里会出现所有的刷机包) 点击Download(OTA)或者点击Download(Fastboot) 准备ADB环境 在"下载OTA包"第四步那里点击Click here to download current Windows Drivers for Essential

SpringBoot注解梳理

丶灬走出姿态 提交于 2020-02-10 20:52:35
一、注解(annotations)列表 @SpringBootApplication: 包含了@ComponentScan、@Configuration和 @EnableAutoConfiguration 注解。其中@ComponentScan让spring Boot扫描到Configuration类并把它加入到程序上下文。 @Configuration 等同于spring的XML配置文件;使用Java代码可以检查类型安全。 @EnableAutoConfiguration 自动配置。 @ComponentScan 组件扫描,可自动发现和装配一些Bean。 @Component 可配合CommandLineRunner使用,在程序启动后执行一些基础任务。 @RestController 注解是@Controller和@ResponseBody的合集,表示这是个控制器bean,并且是将函数的返回值直 接填入HTTP响应体中,是REST风格的控制器。 @Autowired 自动导入。 @PathVariable 获取参数。 @JsonBackReference 解决嵌套外链问题。 @RepositoryRestResourcepublic 配合spring-boot-starter-data-rest使用。 二、注解(annotations)详解 **

徒手撸一个 Spring Boot 中的 Starter ,解密自动化配置黑魔法!

蓝咒 提交于 2020-02-10 13:28:45
原文: https://mp.weixin.qq.com/s/tKr_shLQnvcQADr4mvcU3A 我们使用 Spring Boot,基本上都是沉醉在它 Stater 的方便之中。Starter 为我们带来了众多的自动化配置,有了这些自动化配置,我们可以不费吹灰之力就能搭建一个生产级开发环境,有的小伙伴会觉得这个 Starter 好神奇呀!其实 Starter 也都是 Spring + SpringMVC 中的基础知识点实现的,今天松哥就来带大家自己来撸一个 Starter ,慢慢揭开 Starter 的神秘面纱! 核心知识 其实 Starter 的核心就是条件注解 @Conditional ,当 classpath 下存在某一个 Class 时,某个配置才会生效,前面松哥已经带大家学习过不少 Spring Boot 中的知识点,有的也涉及到源码解读,大伙可能也发现了源码解读时总是会出现条件注解,其实这就是 Starter 配置的核心之一,大伙有兴趣可以翻翻历史记录,看看松哥之前写的关于 Spring Boot 的文章,这里我就不再重复介绍了。 定义自己的 Starter 定义 所谓的 Starter ,其实就是一个普通的 Maven 项目,因此我们自定义 Starter ,需要首先创建一个普通的 Maven 项目,创建完成后,添加 Starter 的自动化配置类即可,如下

about SpringBoot学习后记

﹥>﹥吖頭↗ 提交于 2020-02-10 13:06:53
<SpringBoot实战>第一章节入门的名称为Spring风云再起 看起来Spring的功能确实受Java开发者喜爱 在SpringBoot中,继续将Spring框架做了另一次的封装使框架内代码模块更加简洁 [ Original Spring ] 原来的Spring : 假设你受命用Spring开发一个简单的Hello World Web应用程序.你该做什么? >> * 一个项目结构中,其中有一个包含必要依赖的Maven或者Gradle构建文件,最起码要有Spring MVC和 Servlet API这些依赖. * 一个web.xml文件 (或者一个WebApplicationInitializer实现),其中声明了Spring的DispatcherServlet (取代繁琐的多个Servlet) * 一个启用了Spring MVC的Spring配置. * 一个控制器类,以"Hello World"响应HTTP请求. * 一个用于部署应用程序的Web应用服务器,比如 Tomcat . 这份清单里只有一个东西是Hello World功能相关的,即控制器,剩下的都是Spring开发的Web应用程序必须的通用模板. 既然所有Spring Web应用程序都要用到它们,那为什么还要你来提供这些东西呢? [ SpringBoot Quintessence ] SpringBoot精华所在 :

SpringBoot初试牛刀

雨燕双飞 提交于 2020-02-10 11:33:42
新建 Spring Boot 项目常用的两种方式 你可以通过 https://start.spring.io/ 这个网站来生成一个 Spring Boot 的项目。 你可以选择自己喜欢的依赖进行加载到项目当中。 Spring Boot 项目结构分析 成功打开项目之后,项目长下面这个样子 以 Application为后缀名的 Java 类一般就是 Spring Boot 的启动类,比如本项目的启动项目就是HelloWorldApplication 。我们直接像运行普通 Java 程序一样运行它,由于 Spring Boot 本身就嵌入servlet容器的缘故,我们的 web 项目就运行成功了, 非常方便。 需要注意的一点是 Spring Boot 的启动类是需要最外层的,不然可能导致一些类无法被正确扫描到,导致一些奇怪的问题。 一般情况下 Spring Boot 项目结构类似下面这样 com +- example +- myproject +- Application.java | +- domain | +- Customer.java | +- CustomerRepository.java | +- service | +- CustomerService.java | +- controller | +- CustomerController.java | | +-

SpringBoot简要介绍

可紊 提交于 2020-02-10 11:32:31
一 SpringBoot介绍 1.1 先从Spring谈起 我们知道Spring是重量级企业开发框架 Enterprise JavaBean(EJB) 的替代品,Spring为企业级Java开发提供了一种相对简单的方法,通过 依赖注入 和 面向切面编程 ,用简单的 Java对象(Plain Old Java Object,POJO) 实现了EJB的功能 虽然Spring的组件代码是轻量级的,但它的配置却是重量级的(需要大量XML配置) 。Spring 2.5引入了基于注解的组件扫描,这消除了大量针对应用程序自身组件的显式XML配置。Spring 3.0引入了基于Java的配置,这是一种类型安全的可重构配置方式,可以代替XML。 尽管如此,我们依旧没能逃脱配置的魔爪。开启某些Spring特性时,比如事务管理和Spring MVC,还是需要用XML或Java进行显式配置。启用第三方库时也需要显式配置,比如基于Thymeleaf的Web视图。配置Servlet和过滤器(比如Spring的DispatcherServlet)同样需要在web.xml或Servlet初始化代码里进行显式配置。组件扫描减少了配置量,Java配置让它看上去简洁不少,但Spring还是需要不少配置。 光配置这些XML文件都够我们头疼的了,占用了我们大部分时间和精力。除此之外,相关库的依赖非常让人头疼

使用 linux kernel +busybox 定制linux系统

☆樱花仙子☆ 提交于 2020-02-10 11:32:11
目的: 了解linux的启动过程 主要内容: 1.grub 是启动程序的bootloader 2.linux-kernel 是linux的开源内核 3.busybox 是linux的工具集合 启动顺序: grub-> bzimage > initrd > init > chroot sbin/init (从内存镜像转换成rootfs)>/etc/inittab > fstab>etc/init.d/rcS 实验环境: 操作系统(编译使用): CentOS 7.4Kernel 版本 :5.5.2 1.编译linux kernel 1) 下载及解压: https://www.kernel.org/ 目前最新版本5.5.2 https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.5.2.tar.xz 复制文件到 /usr/src/linux-5.5.2.tar.xz 解压 tar -xvf linux-5.5.2.tar.xz 2)编译linux kernel: 1 yum install ncusres‐devel # 按照需要编译的一些包 2 cd /usr/src/linux‐5.5.2 # 切换到linux源代码目录 3 make menuconfig #配置内核编译内容,配置一些信息 ,由于是演示,默认就可以了 4 make