随笔分类 - SpringBoot常见问题
SpringBoot使用线程池实现异步批量处理任务
摘要:模拟批处理大量数据 @Slf4j @Component public class TestFutureService { @Autowired private TestFutureServiceImpl testFutureServiceImpl; /** * 通常多线程的应用不是为了提高运行效率,
SpringBoot的知识点总结和常用注解
摘要:SpringBoot 知识点总结 基础入门 基本介绍、基本特性、核心模块、版本选择、环境要求、安装集成、技快速开发接口、Maven Wrapper、Spring Boot CLl 配置管理 配置类、配置文件、配置绑定、外部化配置、导入配置、随机值配置、多文档配置、Profiles 配置、配置加载机制
SpringBoot实现单机锁和分布式锁
摘要:1、使用Java的内置锁机制(单机锁) Java提供了synchronized关键字和java.util.concurrent.locks.Lock接口来实现锁。 synchronized是Java语言内置的关键字,当它被用作修饰一个方法时,该方法在同一时间只能被一个线程访问。 Lock接口提供了更
SpringBoot读取配置文件的几种方式
摘要:示例 user: name: zhaotian age: 18 sex: 男 like: 美食,运动,旅行 # @Value注解不支持复杂的数据结构,如数组或列表,请使用@ConfigurationProperties love: - 美食 - 运动 - 旅行 @Value注解 @Value注解是S
SpringBoot可视化接口开发工具magic-api
摘要:magic-api简介 magic-api是一个基于Java的接口快速开发框架,编写接口将通过magic-api提供的UI界面完成,自动映射为HTTP接口,无需定义Controller、Service、Dao、Mapper、XML、VO等Java对象。 在SpringBoot中使用 1、添加magi
SpringBoot实现RequestBodyAdvice和ResponseBodyAdvice接口
摘要:Spring Boot 提供了一种机制,允许开发者在请求体(RequestBody)和响应体(ResponseBody)被处理之前和之后执行自定义逻辑。这通过 RequestBodyAdvice 和 ResponseBodyAdvice 接口实现。 RequestBodyAdvice:此类用于在请求
SpringBoot能同时处理多少请求
摘要:SpringBoot默认的内嵌容器是Tomcat,也就是我们的程序实际上是运行在Tomcat里的。所以与其说SpringBoot可以处理多少请求,到不如说Tomcat可以处理多少请求。 关于Tomcat的默认配置,都在spring-configuration-metadata.json文件中,对应的
SpringBoot获取请求头信息
摘要:### Http 头信息 HTTP 头(Header)是一种附加内容,独立于请求内容和响应内容。 HTTP 协议中的大量特性都通过Header信息交互来实现,比如内容编解码、缓存、连接保活等等。 request是代表HTTP请求信息的对象,response是代表HTTP响应信息的对象。 ``` 当浏
SpringBoot如何解决跨域问题
摘要:### 什么是跨域 跨域问题的本质是浏览器为了保证用户的一种安全拦截机制,它的初衷是为了保证用户的安全,防止恶意网站窃取数据。 **跨域三种情况** 在发起请求时,如果出现了以下情况中的任意一种,那么它就是跨域请求: 1. 协议不同,如 http 和 https; 2. 域名不同; 3. 端口不同。
SpringBoot项目启动执行任务的几种方式
摘要:1、直接在启动类下面调用方法 @SpringBootApplication public class TestApplication { public static void main(String[] args) { SpringApplication.run(TestApplication.cl
SpringBoot配置文件的优先级
摘要:配置文件优先级 (1)命令行参数; (2)java:comp/env的JNDI属性(当前J2EE应用的环境); (3)JAVA系统的环境属性; (4)操作系统的环境变量; (5)JAR包外部的application-xxx.properties或application-xxx.yml配置文件; (6
Spring注解之生命周期@PostConstruct和@PreDestroy
摘要:****### 简介 从Java EE5规范开始,Servlet增加了两个影响Servlet生命周期的注解(Annotation):@PostConstruct和@PreConstruct。 这两个注解被用来修饰一个非静态的void()方法,而且这个方法不能有抛出异常声明。 Servlet生命周期
AOP面向切面编程@Aspect 注解用法
摘要:AOP简介 AOP为Aspect Oriented Programming 的缩写,意为“面向切面编程”,通过预编译方式和运行预期动态代理实现程序功能的统一维护的一种技术。AOP是OOP(面向对象)的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生泛型。 利
SpringBoot连接数据库的方式
摘要:1、Spring集成的服务 直接通过注入方式使用,如redis,jdbc等等服务。 spring: redis: host: localhost port: 6379 password: 123456 database: 0 datasource: driver-class-name: com.my
Spring的全局(统一)异常处理
摘要:异常处理的三种方式 使用 @ExceptionHandler 注解 实现 HandlerExceptionResolver 接口(SpringMVC) 使用 @RestControllerAdvice 注解(诞生于Spring3.2) 官方推荐的是使用@ExceptionHandler注解去捕获固定
Spring之拦截器和过滤器
摘要:Spring拦截器 拦截器简介 Spring拦截器是一种基于AOP的技术,本质也是使用一种代理技术,它主要作用于接口请求中的控制器,也就是Controller。 因此它可以用于对接口进行权限验证控制。 创建拦截器 创建一个DemoInterceptor类实现HandlerInterceptor接口,
Spring注解之构建器@Builder的用法
摘要:简述 Builder使用创建者模式又叫建造者模式。简单来说,就是一步步创建一个对象,它对用户屏蔽了里面构建的细节,但却可以精细地控制对象的构造过程。 基础使用 @Builder 注解为你的类生成相对略微复杂的构建器API。 @Builder 可以让你以下面显示的那样调用你的代码,来初始化你的实例对象
Spring手动获取bean的四种方式
摘要:一、实现BeanFactoryPostProcessor接口 @Component public class SpringUtil implements BeanFactoryPostProcessor { private static ConfigurableListableBeanFactory
Spring定时任务和@Async注解异步调用
摘要:Spring定时任务 1、@Scheduled注解方式 使用方式 @Scheduled的使用方式十分简单,首先在项目启动类添加注解@EnableScheduled。 编写定时任务方法,方法上添加注解@Scheduled。 如果有多个定时任务,可以使用异步或者多线程解决。 参数说明 @Schedule
Spring注解之依赖注入@Autowired和@Resource
摘要:Spring常见的DI方式 字段注入(Field Injection) 在字段上使用@Autowired/Resource注解 字段注入是日常开发中使用最多的一种注入方式,它的实现代码如下: @Autowired private UserService userService; 优点 属性注入最大的