自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 收藏
  • 关注

原创 并发编程 - 通过案例分析synchronized

1、进程与线程进程:表示正在运行的程序,一个应用可能同时开启一个或多个线程,它拥有一些静态资源,如:内存、CPU。进程之间也可以通过管道、信号量、共享存储、Socket、消息队列等方式相互通信。线程:表示执行指令的集合,一个进程对应一个或多个线程,而线程会使用或者共享所在进程的资源。同一个进程内的线程之间也可以通过管道、同步、wait、notify、信号量等方式相互通信。2、线程的创建2.1、继承Thread方式public class DemoThread extends Thread {

2020-09-29 01:19:03 168

原创 SpringBoot学习笔记17 - 自定义Starter

1、Spring Boot与Redis的整合在《SpringBoot学习笔记16 - 类的自动装配》的 3.2 段提到,框架需要装配的类存储都记录在spring-boot-autoconfigure依赖下的spring.factories文件中,该文件中记录了SpringBoot主动开发调用第三方的类。换言之,以Redis为例,Redis作为一个功能强大的缓存服务器,SpringBoot自然不会放弃它,而Redis也不会为了适应Java环境而为其单独开发。所以这个功能只能由SpringBoot自己实现,

2020-09-20 23:29:44 155

原创 SpringBoot学习笔记16 - 类的自动装配

1、剖析@SpringBootApplication注解创建一个SpringBoot工程后,SpringBoot会为用户提供一个Application类,该类负责项目的启动:@SpringBootApplicationpublic class SpringbootSeniorApplication { public static void main(String[] args) { SpringApplication.run(SpringbootSeniorApplication.class,

2020-09-19 23:47:59 252 2

原创 绝对路径与相对路径解析问题

1、路径的构成路径由两部分构成:资源路径与资源名称。即:路径 = 资源路径 + 资源名称资源路径与资源名称的分水岭为:路径中的最后一个斜杠。该斜杠的前面部分称为资源路径,后面部分称为资源名称。如:请求路径:http://localhost:8080/contextpath/filterpath/index资源路径:http://localhost:8080/contextpath/filterpath资源名称:index2、路径的分类根据该路径是否可以唯一的定位一个资源,可以将路径划分

2020-09-18 16:41:22 498

原创 SpringBoot学习笔记15 - Thymeleaf

Thymeleaf是一个流行的模板引擎,该模板引擎采用 Java 语言开发。Java 中常见的模板引擎有 Velocity、Freemaker、Thymeleaf 等。不同的模板引擎都会具有自己的特定的标签体系,而 Thymeleaf 以 HTML 标签为载体,在 HTML 的标签下实现对数据的展示。Thymeleaf 本身与 SpringBoot 是没有关系的,但 SpringBoot 官方推荐使用 Thymeleaf 作为前端页面的数据展示技术,SpringBoot 很好地集成了这种模

2020-09-13 23:28:21 442

原创 SpringBoot学习笔记14 - Filter应用

1、注解方式注意:该方案仅适用于Servlet3.0及其之后的版本。1.1、定义Filter为定义的Filter添加@WebFilter注解@WebFilter("/*") // 拦截所有请求public class DemoFilter implements Filter { @Override public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse,

2020-09-13 02:04:05 94

原创 SpringBoot学习笔记13 - Servlet应用

1、注解方式注意:该方案仅适用于Servlet3.0及其之后的版本。1.1、定义Servlet为定义的Servlet添加@WebServlet注解@WebServlet("/demo")public class DemoServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws Servle

2020-09-13 01:20:32 103

原创 SpringBoot学习笔记12 - Interceptor应用

1、定义拦截器通过实现接口HandlerInterceptor,并重写其中方法去定义拦截器,接口内容如下:public interface HandlerInterceptor { default boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { return true; }

2020-09-13 00:11:33 116

原创 双重检查锁线程安全问题

1、说明在我们平时的开发过程中,双重检查锁的开发思路可以为我们解决一些问题,比如在解决Redis在高并发情况下可能会出现的热点缓存问题,就可以用双重检查锁的机制去解决;又比如说单例模式:@Component // 当前类也是单例public class SingletonFactory { private SingletonBean bean; private SingletonFactory(){} public SingletonBean getInstance()

2020-09-12 22:19:37 437

原创 SpringBoot学习笔记11 - Redis应用

1、Redis数据分类使用Redis缓存的数据可以划分为两类:DB更新后,redis中缓存的数据必须马上清除,以保证缓存中的数据与Redis中的数据绝对一致性。对数据实时性要求不是很高,只要与DB中的数据差别不大就可以。这类数据一般会为其设置过期失效。...

2020-09-12 00:00:19 163

原创 SpringBoot学习笔记10 - 控制日志输出

1、说明Spring Boot中使用的日志技术为logback。其与Log4J出自一人,其性能优于Log4J,是Log4J的替代者。2、添加依赖在Spring Boot中使用 logback,需要具有spring-boot-starter-logging依赖,而该依赖被spring-boot-starter-web所依赖,即不用直接导入spring-boot-starter-logging依赖。3、方式1: 在application.yml中配置属性# logback日志控制logg

2020-09-10 00:36:09 151

原创 SpringBoot学习笔记9 - 事务的支持

1、事务管理器若工程直接或间接依赖于spring-tx,则框架会自动注入DataSourceTransactionManager事务管理器;若依赖于spring-boot-data-jpa,则会自动注入JpaTransactionManager。2、准备数据库Teacher(id, name, age)接口TeacherDao#insertTeacher:添加teacher记录。3、发生运行异常时事务回滚当程序发生运行异常时,SpringBoot事务默认回滚:@Serv

2020-09-09 23:19:36 174

原创 SpringBoot学习笔记8 - SpringBoot中使用MyBatis

1、添加必要依赖<dependencies> ... <!-- mybatis 与 spring boot 整合依赖 --> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>1.3.2</versio

2020-09-09 01:32:12 121 2

原创 SpringBoot学习笔记7 - SpringBoot中使用jsp

1、创建web资源目录在main下创建webapp目录将webapp设置为资源目录2、编写JSP文件在webapp下创建index.jsp编写JSP内容<%@ page contentType="text/html;charset=UTF-8" language="java" %><html><head> <meta charset="UTF-8" /> <title>Title&

2020-09-08 01:19:14 115

原创 SpringBoot学习笔记6 - 读取配置文件信息

1、读取配置属性假设在application.yml文件中,我们定义了如下属性:spring: profiles: active: devauthor: name: blairscott # 自定义属性---spring: profiles: devserver: port: 8081 # 系统属性 servlet: context-path: /devpath---spring: profiles: proserver: port: 8

2020-09-07 12:36:50 180

原创 SpringBoot学习笔记5 - 多环境选择实现

1、多环境选择1.1、场景描述以下两种场景下需要进行多环境选择:相同代码运行在不同环境在开发应用时,通常同一套程序会被运行在多个不同的环境,例如,开发、测试、生产环境等。每个环境的数据库地址、服务器端口号等配置都会不同。若在不同环境下运行时将配置文件修改为不同内容,那么,这种做法不仅非常繁琐,而且很容易发生错误。此时就需要定义出不同的配置信息,在不同的环境中选择不同的配置。不同环境执行不同实现类在开发应用时,有时不同的环境,需要运行的接口的实现类也是不同的。例如,若要开发一个具有短信发送功能

2020-09-05 01:28:09 257

原创 SpringBoot学习笔记4 - 单元测试与自定义异常页面

1、单元测试创建Service接口及其实现类:添加接口方法、实现类实现该方法public interface DemoService { String hello();}@Servicepublic class DemoServiceImpl implements DemoService { @Override public String hello() { return "Hello World!"; }}添加测试方法:

2020-09-04 22:40:47 152

原创 SpringBoot学习笔记3 - Actuator监控器

1、说明Actuator执行器是 Spring Boot 提供的一个可插拔模块,用于对工程进行监控。其通过不同的监控终端实现不同的监控功能。其功能与 Dubbo 的监控中心类似,不同的是,Dubbo 的监控中心是需要专门部署的,而 Spring Boot 的 Actuator 是存在于每一个工程,实现对每一个工程进行监控。2、导入依赖在 pom.xml 文件的<dependencies>标签中添加以下依赖:<dependency> <groupId>org

2020-09-04 14:00:06 320

原创 SpringBoot学习笔记2 - yml文件说明

1、application.properties在Spring项目中,我们通常将历史使用的多而冗长的配置文件复用过来,修改其中的参数,使之适配于新的项目。于是一个新的项目就此形成。在这些项目中,配置文件中的信息通常只有很少的一部分发生了修改。这种开发方式显得极其不优雅。SpringBoot克服了这些问题,它将一些通用的部分抽象并封装了起来,只留下不同的部分作为参数让使用者去配置。在创建SpringBoot项目的时候,项目默认生成的配置文件为:application.properties:在prop

2020-09-02 23:59:26 206

原创 SpringBoot学习笔记1 - HelloWorld

本文主要通过图文的方式一步一步的创建一个SpringBoot项目,并执行并运行Hello World程序。

2020-09-02 23:17:13 130

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除