SpringBoot&其它常用注解
SpringBoot 提供了很多个注解,可以帮助我们快速构建应用程序,以下是 SpringBoot 和其它的一些常用注解。 # 注解详情表 注解名称 参数类型 注解简介 框架 @SpringBootApplication 可空 用于标识 SpringBoot 应用程序的入口类 SpringBoot @RestController 可空 用于自动将返回值转换为 JSON 格式 SpringWeb @RequestMapping String/String[] 用于映射 URL 请求 SpringWeb @GetMapping String/String[] 用于映射 HTTP 的...
more...SpringBoot3原理与核心
# SpringBoot 简介 SpringBoot 的目标是为所有 Spring 开发者提供一种快速的入门体验,开箱即用,无需编写配置文件, SpringBoot 可以快速创建一个独立的生产级别的 Spring 应用,其实 SpringBoot 底层是靠 Spring 来实现的,使用 SpringBoot 只需要编写少量配置即可快速整合 Spring 以及第三方技术支持。 # SpringBoot 特性 可以快速创建独立的 Spring 应用。 SSM :导包、编写配置、启动运行。 直接嵌入 Tomcat 、 Jetty 、 Undertow 等 Servlet 容器,无需部署...
more...Java多线程之Callable和Future接口
创建线程的方式有两种,一种是实现 Runnable 接口,另一种是继承自 Thread ,但是这两种方式都有个缺点,那就是在任务执行完成之后无法获取返回结果,如果需要获取返回结果,那就需要来实现 Callable 接口。 从 JavaSE 5.0 开始引入了 Callable 和 Future 接口后就可以通过它们来构建带有返回结果的线程,在任务执行完成后就可以获取执行结果。 # Callable<V> 接口 先来看一下 Runnable 接口中的 run() 方法其返回值为 void , 当然就无法获取结果了。 Runnable.javapublic...
more...Java多线程-Executor框架
不管是在 Java 中还是在 Android 中使用到的线程池都是一样的,那就是 Executor 线程池框架。 # Executor 框架是什么? Executor 框架是实现线程池的功能,我们知道线程池就是线程的集合,在线程池中来管理线程,以实现线程的重用性,降低资源消耗,提高响应速度,线程用于执行异步任务,单个线程既是工作单元也是执行机制,从 JDK 1.5 开始为了把工作单元与执行机制分离开,然后就诞生了 Executor 框架,它是一个用于统一创建与运行的接口。 Executor 框架是 Java 并发编程中的一个重要组成部分,它提供了一种标准的方式来执行任务,它包含...
more...Java多线程深入理解
🚀本篇章代码 Demo # 多线程概念 在现代操作系统中启动某一个程序时,操作系统就会为其创建一个进程,而在操作系统中调度最小单位是线程,也被称为轻量级进程,在一个进程里面可以创建多个线程,它们都拥有各自的计数器、栈、堆、局部变量等属性,并且可以访问共享内存变量。 进程:操作系统中正在运行的程序,是系统进行资源分配和调用的独立单位,每一个进程都拥有它自己的内存空间和系统资源。 线程:线程是进程中的单个顺序控制流,一个进程如果只有一条执行路径则被称为单线程程序,而如果一个进程有多条执行路径则被称为多线程程序。 # 多线程创建 & 启动 多线程有两种创建方法,第一种是继承...
more...如何在IntelliJ IDEA中配置AspectJ
# AspectJ 概述 AspectJ 它是一个基于 Java 语言的 AOP 框架,提供了强大的 AOP 功能。 AspectJ 是 Java 语言的一个 AOP 实现,其主要包括两个部分:第一个部分定义了如何表达、定义 AOP 编程中的语法规范,通过这套语言规范,我们可以方便地使用 AOP 来解决 Java 中存在的交叉关注点问题,另一个部分是工具部分,包括编译器、调试工具等。 AspectJ 是最早功能比较强大的 AOP 实现之一,对整套 AOP 机制都有较好地实现,很多其它语言的 AOP 实现,也借鉴或采纳了 AspectJ 中的很多设计。在 Java 领域, AspectJ...
more...SpringAop深入理解-AspectJ
# 前言 🚀本章代码示例 # 关于 OOP 的概念 OOP 是面向对象的程序设计,在谈到 OOP 程序设计前,我们不得不了解一下 POP 即面向过程的程序设计, POP 它是以功能为中心进行思考和组织的一种编程方式,强调的是系统数据被加工处理的过程,而 OOP 则注重封装,强调整体性的概念,以对象为中心,将对象内部组织与外部环境区分开来。 至于 OOP 的出现对 POP 存在很多颠覆性的,不能说 POP 没有了价值,只是不同时代的产物,从方法论来讲,更喜欢将面向对象与面向过程看做是事物的两个方面,那就是局部与整体 (必须注意局部与整体是相对的),在实际应用中,两者方法都同样重要。 在...
more...SpringIOC深入理解-DI依赖注入
# SpringIOC 概述 🚀本篇章代码 Demo 在日常开发中,创建对象的操作随处可见以至于对其十分熟悉又感觉很繁琐,每次需要对象都需要亲手 new 一个对象出来,甚至某些情况下由于不好的编程习惯可能还会造成对象无法被回收,就会非常糟糕,我们一直提倡的松耦合,少入侵原则,这种情况下变得一无是。前辈们开始谋求改变这种编程陋习,考虑如何使编码更加解耦合,由此而来的解决方法是面向接口编程,未使用接口和使用接口后的代码如下: # 1️⃣ 使用接口前的做法 - before SystemDaoImpl.javapackage top.rem.rain.demo1.before;import...
more...JSR-133:Java Memory Model and Thread Specification
# Specification This document is the community review draft of the JSR-133 specification, the Java Memory Model (JMM) and Thread Specification. This specification is intended to be part of the JSR-176 umbrella for the Tiger (1.5) release of Java, and is intended to replace Chapter 17 of the Java...
more...