自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 JSON对象相关操作

@[TOC]JSON对象相关操作)Json对象相关操作 // 获取json对象 String strJson = HttpClientUtil.sendGet(Constant.STOCK_RECOMMEND_URL,"UTF-8"); List<StockDetail> objJsonArr = JSONObject.parseArray(strJson,StockDetail.class);

2020-11-11 10:19:47 170

转载 SpringBoot生命周期

Spring Bean的生命周期Bean容器找到配置文件中 Spring Bean 的定义。Bean容器利用Java Reflection API创建一个Bean的实例。如果涉及到一些属性值 利用set方法设置一些属性值。如果Bean实现了BeanNameAware接口,调用setBeanName()方法,传入Bean的名字。如果Bean实现了BeanClassLoaderAware接口,调用setBeanClassLoader()方法,传入ClassLoader对象的实例。如果Bean实现了B

2020-10-28 13:56:09 581

原创 常见的设计模式

常见的设计模式创建型模式单例(Singleton)IntentImplementationⅠ 懒汉式-线程不安全Ⅱ 饿汉式-线程安全Ⅲ 懒汉式-线程安全Ⅳ 双重校验锁-线程安全简单工厂(Simple Factory)IntentClass Diagram工厂方法(Factory Method)IntentClass Diagram抽象工厂(Abstract Factory)IntentClass Diagram行为型模式观察者(Observer)Intent策略(Strategy)Intent结构型模式装饰

2020-10-28 13:23:55 668

转载 SpringBoot 常用注解

SpringBoot 常用注解项目配置注解1、@SpringBootApplication 注解2、@ServletComponentScan:3、@MapperScan:4、资源导入注解:@ImportResource @Import @PropertySourcecontroller 层1、@Controller2、@CrossOrigin:3、@Autowired:4、@EnablCaching5、@PathVariable:servcie层注解1、@Service:2、@Resource:持久层注解

2020-10-28 11:52:26 643

原创 HashMap 源码的一些方法

HashMap 源码的一些方法Float.isNaN(loadFactor))tableSizeFor(initialCapacity)学习HashMap 源码时有一些不常用的方法在此记录。Float.isNaN(loadFactor))JDK中float和double有一个方法isNan,该方法用于描述非法的float,经过多次运算float值可能会出现非法情况,如除数为0.0在Float中NaN实际上是引用类型,而不是值类型,每一个NaN都是不同的对象。tableSizeFor(init

2020-10-28 11:11:59 96

原创 Redis 相关知识点

Redis 相关知识点概述为什么要用缓存为什么用redis用redis缓存了哪些东西单线程redis为什么这么快redis的数据类型和使用场景redis 的过期策略都有哪些?内存淘汰机制都有哪些?手写一下 LRU 代码实现?Redis 的持久化机制是什么?了解什么是 redis 的雪崩、穿透和击穿?redis 崩溃之后会怎么样?系统该如何应对这种情况?如何处理 redis 的穿透缓存雪崩缓存穿透缓存击穿参考:javaguideCS-NOTESRedis面试题缓存夺命连环问概述为什么要用缓存用

2020-10-25 19:49:33 147

原创 MySQL和数据库笔记

MySQL和数据库相关知识点1. 索引为什么要用索引B+树特点(与B树和Hash索引对比)索引类型主键索引二级索引(辅助索引)聚集索引与非聚集索引回表查询与覆盖索引什么时候会导致索引失效索引创建原则索引创建注意点2. 数据库左连接与右连接MyISAM和InnoDB区别BTree索引 和 哈希索引什么是事务事务的四大特性并发事务带来哪些问题?事务隔离级别有哪些?MySQL的默认隔离级别是?大表优化一条SQL语句在MySQL中如何执行的1. 索引为什么要用索引优点可以大大加快 数据的检索速度,减少检索

2020-10-25 14:39:37 194

原创 秒杀系统的设计与实现

秒杀系统的设计与实现及相关面试题1. 整体介绍2. 秒杀系统的架构,如何设计一个秒杀系统?整体优化点:3. 为什么要用 Redis?是怎么用的?如何缓解 Redis 的压力?3.1 大量的使用缓存,如何减少对 Redis 的访问(Redis预减库存和本地标记)3.2 Redis 的数据结构和底层实现3.3 大量的使用了缓存,那么就存在缓存的过期时间控制以及缓存击穿以及缓存雪崩等问题?3.4 缓存更新策略以及缓存击穿、雪崩、穿透3.5 Redis 的持久化实现方式4. 为什么要用 RabbitMQ?是怎么用的

2020-10-18 18:13:13 3414 1

转载 Java动态代理InvocationHandler和Proxy学习笔记

java动态代理机制中有两个重要的类和接口InvocationHandler(接口)和Proxy(类),这一个类Proxy和接口InvocationHandler是我们实现动态代理的核心;1.InvocationHandler接口是proxy代理实例的调用处理程序实现的一个接口,每一个proxy代理实例都有一个关联的调用处理程序;在代理实例调用方法时,方法调用被编码分派到调用处理程序的invoke方法。看下官方文档对InvocationHandler接口的描述: {@code Invo

2020-08-02 19:06:18 150

原创 五、Spring Boot - 项目部署

项目部署1. 项目打包2. 插件安装2.1. 安装插件1. 项目打包添加项目的pom.xml插件;在pom.xml要显式的加入插件spring-boot-maven-plugin,否则无法产生 jar 清单文件,导致打出来的 jar 无法使用命令运行; <build> <plugins> <!-- 打jar包时如果不配置该插件,打出来的jar包没有清单文件 --> <plugin>

2020-07-26 16:16:38 210

原创 四、Spring Boot - 实践

Spring Boot实践1. Lombok2. 整合SpringMVC2.1. 修改端口2.2. 访问静态资源2.3. 添加拦截器3. 整合jdbc和事务4. 整合连接池5. 整合mybatis5.1. mybatis5.2. 通用mapper6. 启动测试7. Junit测试8. 整合Redis1. Lombok我们编写pojo时,经常需要编写构造函数和getter、setter方法,属性多的时候,就非常浪费时间,使用lombok插件可以解决这个问题:在IDEA中安装lombok插件;不安装插件在

2020-07-26 15:19:42 491

原创 三、Spring Boot -自动配置原理

自动配置原理1. 了解@SpringBootApplication1.1. @SpringBootConfiguration1.2. @EnableAutoConfiguration1.3. @ComponentScan2. 默认配置原理2.1. spring.factories2.1. 默认配置类2.2. 默认配置属性3. 总结启动类:@SpringBootApplicationpublic class Application { public static void main(String

2020-07-25 16:31:32 145

原创 二、Spring Boot - java配置应用

java配置应用1. 尝试 java 配置2. Spring Boot的属性注入3. 更优雅的注入4. Yaml配置文件目标:可以使用@Value获取配置文件配置项并结合@Bean注册组件到Spring分析:需求:使用Java代码配置数据库连接池,并可以在处理器中注入并使用步骤:添加依赖;创建数据库;创建数据库连接参数的配置文件jdbc.properties;创建配置类;改造处理器类注入数据源并使用1. 尝试 java 配置java配置主要靠java类和一些注解,比较常用的

2020-07-24 22:21:43 162

原创 一、Spring Boot - 快速入门

Spring Boot 快速入门1. 分析需求实现步骤2. 代码实现2.1 创建工程2.2 添加依赖2.2.1 添加父工程坐标2.2.2. 添加web启动器2.2.3. 管理jdk版本2.2.4. 完整pom文件2.3. 启动类2.4. 编写controller2.5. 启动测试3. 小结1. 分析需求可以在浏览器中访问 http://localhost:8080/hello 输出一串字符实现步骤创建工程;添加依赖(启动器依赖,spring-boot-starter-web);创建启动类;

2020-07-24 17:23:16 115

原创 八、SSM整合

SSM整合1. 原始方式整合1. 准备工作2. 创建Maven工程3. 导入坐标4. 编写实体类5. 编写Mapper接口6. 编写Service接口7. 编写Service接口实现8. 编写Controller9. 编写添加页面10. 编写列表页面11. 编写相应配置文件12 逻辑代码完善1. Controller:2. Service实现类:13 测试1. 添加操作:2. 查询操作:2. Spring整合MyBatis1. 整合思路2. 修改Spring配置文件applicationContext.xm

2020-07-17 18:42:15 112

原创 八、SpringMVC异常处理

SpringMVC异常处理1. 异常处理的思路2. 异常处理的两种方式2.1 简单异常处理器SimapleMappingExceptionResolver2.2 自定义异常处理步骤1. 异常处理的思路系统的Dao、Service、Controller出现都通过throws Exception向上抛出,最后又SpringMVC前端控制器较有异常处理器进行异常处理,如下图:2. 异常处理的两种方式使用Spring MVC提供的简单异常处理器SimapleMappingExceptionResolve

2020-07-14 19:41:02 202

原创 七、Spring拦截器

SpringMVC拦截器1. 拦截器(interceptor)的作用2. 拦截器和过滤器的区别2. 拦截器快速入门2.1 代码实现2.2 拦截方法说明1. 拦截器(interceptor)的作用SpringMVC的拦截器类似于Servlet开发中的过滤器Filter,用于对处理器进行预处理和后处理。将拦截器按一定的顺序连接成一条链,这条称为拦截器链(Interceptor Chain)。在访问被拦截的方法或字段时,拦截器链中的拦截器就会按其之前定义的顺序被调用。拦截器也是AOP思想的具体实现。2.

2020-07-14 15:22:59 185

原创 六、SpringMVC文件上传

SpringMVC文件上传1. 文件上传1.1 文件上传客户端三要素1.2 文件上传原理1.3 单文件上传步骤1.4 单文件上传实现1.5 多文件上传实现1. 文件上传1.1 文件上传客户端三要素表单项 type = “file”表单的提交方式是 post表单的 enctype 属性是多部分表单形式,即 enctype = “multipart/form-data”1.2 文件上传原理1.3 单文件上传步骤导入fileupload和io坐标配置文件上传解析器编写文件上传代码

2020-07-14 12:06:43 294

原创 五、SpringMVC获得请求信息

SpringMVC获得请求信息1. 请求参数类型1.1 获得基本类型参数1.2 获得POJO类型参数1.3 获得数组类型参数1.4 获得集合类型参数1.5 开放静态资源的访问1.6 配置全局乱码过滤器1.7 参数绑定注解@RequestParam1.8 自定义类型转换器2. 获得Servlet相关API2.1 获得Servlet相关API2.2 获得请求头2.3 获得Restful风格的参数1. 请求参数类型客户端请求参数的格式是:name=value&name=value…服务器端要获得的请

2020-07-13 20:12:08 141

原创 四、SpringMVC数据响应

SpringMVC数据响应1. SpringMVC的数据响应方式2. 页面跳转2.1 返回字符串形式2.2 返回ModelAndView对象3. 回写数据3.1 直接返回数据串3.2 返回对象或集合1. SpringMVC的数据响应方式页面跳转直接返回字符串通过ModelAndView对象返回回写数据直接返回字符串返回对象或集合2. 页面跳转2.1 返回字符串形式直接返回字符串:此种方式会将返回的字符串与视图解析器的前后缀拼接后跳转。2.2 返回ModelAndVie

2020-07-13 17:10:21 363

原创 三、SpringMVC执行流程及组件

SpringMVC执行流程及组件1. SpringMVC的执行流程2. SpringMVC注解解析2.1 @RequestiMapping3. SpringMVC的XML配置资源解析器1. SpringMVC的执行流程2. SpringMVC注解解析2.1 @RequestiMapping作用:用于建立请求URL和请求方法之间的对应关系位置:类上,请求URL的第一级访问目录。此处不写的话,就相当于应用的根目录方法上,请求URL的第二级访问目录,与类上的使用@RequestMapping标

2020-07-12 16:17:17 164

原创 二、SpringMVC简介及快速入门

SpringMVC简介及快速入门1. SpringMVC概述2. SpringMVC开发步骤3. 快速入门3.1 代码3.2 流程图1. SpringMVC概述SpringMVC通过一套注解,让一个简单的Java类成为处理请求的控制器,而无须实现任何接口,同时它还支持RESTful编程风格的请求。2. SpringMVC开发步骤需求:客户端发请求,服务器端接收请求,执行逻辑并进行视图跳转。导入SpringMVC相关坐标配置DispatcherServlet编写Controller类和视图页

2020-07-12 14:57:05 112

原创 一、Spring集成Web环境

Spring集成Web环境1. 基本三层架构环境搭建2. ApplicationContext应用上下文获取方式三级目录1. 基本三层架构环境搭建pom.xml:<dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</versio

2020-07-12 12:33:17 1008 1

原创 十二、Spring事务控制(二)

Spring事务控制(二)1. 转账业务环境搭建2. 基于XML的声明式事务控制2.1 声明式事务控制的实现2.2 切点方法的事务参数配置3. 基于注解的声明式事务控制3.1 代码实现3.2 解析3.3 要点1. 转账业务环境搭建dao层:public class AccountDaoImpl implements AccountDao { private JdbcTemplate jdbcTemplate; public void setJdbcTemplate(JdbcTemp

2020-07-11 19:58:28 99

原创 十一、Spring事务控制(一)

Spring事务控制(一)1. 编程式事务控制相关对象1.1 PlatformTransactionManager1.2 TransactionDefinition1.2.1 事务隔离级别1.2.2 事务传播行为1.3 TransactionStatus2. 基于XML的声明式事务控制2.1 什么是声明式事务控制2.1 声明式事务处理的作用1. 编程式事务控制相关对象1.1 PlatformTransactionManagerPlatformTransactionManager 接口是spring的事

2020-07-11 16:43:13 106

原创 十、Spring持久层工具JDBCTemplate

Spring持久层工具JDBCTemplate1.Spring JDBCTemplate基本使用1.1 JDBCTemplate开发步骤1.2 入门代码1.3 spring产生JdbcTemplate对象1.4 JdbcTemplate常用操作1.Spring JDBCTemplate基本使用1.1 JDBCTemplate开发步骤导入spring-jdbc和spring-tx坐标创建数据库和实体创建JdbcTemplate对象执行数据库操作pom.xml: <depende

2020-07-11 12:47:58 152

原创 九、基于注解的AOP开发

基于注解的AOP开发快速入门注解配置AOP详解注解通知的类型切点表达时的抽取快速入门创建目标接口和目标类(内部有切点)创建切面类(内部有增强方法)将目标类和切面类的对象创建权交给spring在切面类中使用注解配置织入关系在配置文件中开启组件扫描和AOP的自动代理测试代码applicationContext-anno.xml:<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springfra

2020-07-10 17:51:10 253

原创 八、基于XML的AOP开发

基于XML的AOP开发快速入门XML配置AOP详解切点表达式的写法通知的类型切点表达时的抽取快速入门导入AOP相关坐标创建目标接口和目标类(内部有切点)创建切面类(内部有增强方法)将目标类和切面类的对象创建权交给spring在applicationContext中配置织入关系测试代码pom.xml: <dependencies> <dependency> <groupId>junit</groupId>

2020-07-10 16:40:56 162

原创 七、Spring的AOP简介

Spring的AOP简介什么是AOPAOP的作用及其优势AOP的底层实现AOP的动态代理技术基于JDK的动态代理基于cglib的动态代理AOP相关概念AOP开发明确的事项需要编写的内容AOP技术实现的内容AOP底层使用哪种代理方式什么是AOPAOP为 Aspect Oriented Programming 的缩写,意思为面向切面编程,是通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。AOP的作用及其优势作用:在程序运行期间,在不修改源码的情况下对方法进行功能增强。优势:减少重复代

2020-07-10 15:20:56 193

原创 六、Spring集成Junit

Spring集成Junit集成简介Spring集成Junit步骤代码实现集成简介让SpringJunit负责创建Spring容器,但是需要将配置文件的名称告诉它将需要进行测试Bean直接在测试类中进行注入Spring集成Junit步骤导入spring集成Junit的坐标使用@RunWith注解替换原来的运行期使用@ContextConfiguration指定配置文件或配置类使用@Autowired注入需要测试的对象创建测试方法进行测试代码实现pom.xml: <!--

2020-07-09 18:05:48 185

原创 五、Spring注解开发

Spring注解开发Spring原始注解Spring新注解Spring原始注解Spring原始注解主要是代替的配置注意:使用注解进行开发时,需要在applicationContext.xml中配置组件扫描,作用是指定哪个包及其子包下的Bean需要进行扫描以便识别使用注解配置的类、字段、方法。applicationContext.xml: <!--配置组件扫描--> <context:component-scan base-package="com.example

2020-07-09 17:45:16 113

原创 四、Spring配置数据源

Spring配置数据源Spring配置数据源Spring加载properties文件Spring配置数据源可以将DataSource的创建圈交由Spring容器去完成applicationContext.xml: <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"> <property name="driverClass" value="com.mysql.jdbc.D

2020-07-09 16:01:28 106

原创 三、Spring相关API

Spring相关API1.ApplicationContext的实现类1.1.ClassPathXmlApplicationContext1.2.FileSystemXmlApplicationContext1.3.AnnotationConfigApplicationContext2.getBean() 方法使用1.ApplicationContext的实现类1.1.ClassPathXmlApplicationContext它是从类的根路径下加载配置文件推荐使用这种。1.2.FileSystem

2020-07-09 13:05:21 258

原创 二、Spring配置文件(2)(依赖注入)

Spring配置文件(2)Spring配置文件1.Bean的依赖注入分析2.Bean的依赖注入概念3.Bean的依赖注入方式4.Bean的依赖注入的数据类型5.引入其他配置文件(分模块开发)6.小结Spring配置文件参考:https://www.tutorialspoint.com/spring/index.htm1.Bean的依赖注入分析因为UserService和UserDao都在Spring容器中,而最终程序直接使用的是UserService,所以可以在Spring容器中,将UserDao设

2020-07-09 12:39:35 188

原创 一、Spring配置文件(1)

Spring配置文件(1)Bean标签基本配置1.Bean标签基本配置2.Bean标签范围配置3.Bean生命周期配置4.Bean实例化的三种方式Bean标签基本配置参考:https://www.tutorialspoint.com/spring/index.htm1.Bean标签基本配置用于配置对象交由Spring来创建。默认情况下它调用的是类中的无参构造函数,如果没有无参构造函数则不能创建成功。基本属性:id:Bean实例在Spring容器中的唯一标识class:Bean的全限定名称

2020-07-08 20:10:11 179

原创 七、MyBatis的注解开发

参考:https://mybatis.org/mybatis-3/zh/java-api.html1.注解实现基本的curd:UserMapper接口:public interface UserMapper { @Insert("insert into user values(#{id},#{username},#{password},#{birthday})") public void save(User user); @Update("update use.

2020-07-06 20:27:00 131

原创 六、MyBatis多表查询

1.一对一的查询(查询一个订单,与此同时查询出该订单所属的用户)数据库表:User实体类: private int id; private String username; private String password; private Date birthday; //描述的是当前用户存在哪些订单 private List<Order> orderList;Order实体类: private int id;

2020-07-06 18:29:38 165

原创 五、MyBatis核心配置文件深入

参考:https://mybatis.org/mybatis-3/zh/configuration.html#1.类型处理器(typeHandlers)你可以重写已有的类型处理器或创建你自己的类型处理器来处理不支持的或非标准的类型。 具体做法为:实现org.apache.ibatis.type.TypeHandler接口, 或继承一个很便利的类org.apache.ibatis.type.BaseTypeHandler, 并且可以(可选地)将它映射到一个 JDBC 类型。例如:一个Jav...

2020-07-06 12:49:37 112

原创 四、MyBatis映射文件深入

动态sql语句参考:https://mybatis.org/mybatis-3/zh/dynamic-sql.html1. if <select id="findByCondition" parameterType="user" resultType="user"> select * from user <where> <if test="id!=0"> and i

2020-07-05 20:49:39 96

转载 IntelliJ IDEA 报错:找不到包或者找不到符号

1.利用Maven-Reimport2.Invalidate and Restart3.编码统一4.重新编译点开Project Structure 找到项目编译输出目录 将target目录下文件清空 右键项目重新build5.利用Maven-Install 看到评论中有不少同学说Maven-Install解决了问题,这里给大家列出以免没看到评论的同学错过解决问题的方法。部分由于依赖服务或者自身并没有加载至本地仓库而导致这个问题的,可以通过Maven-Ins

2020-07-05 19:32:26 373

空空如也

空空如也

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

TA关注的人

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