- 博客(11)
- 收藏
- 关注
原创 多线程原理(一)--ReentrantLock实现原理
ReentrantLock实现原理 ReentrantLock lock=new ReentrantLock(); lock.lock(); System.out.println("lock"); lock.unlock();1 ReentrantLock底层是基于AQS(AbstractQueuedSynchronizer)的。AbstractQueuedSynchronizer包含的属性包括int成员变量state表示同步状态、一个n
2020-11-30 17:42:38
4998
原创 SpringBoot原理(二)--自动装配
SpringBoot自动装配原理1 在上一文提到的启动流程中prepareContext准备上下文环境中的load方法会加载启动类 private int load(Class<?> source) { if (isGroovyPresent() && GroovyBeanDefinitionSource.class.isAssignableFrom(source)) { // Any GroovyLoaders added in beans{} DSL can c
2020-11-29 21:04:36
6150
原创 SpringBoot原理(一)--启动流程
SpringBoot启动流程以下将从springboot的入口类SpringApplication.run(TestApplication.class,args);开始分析1 进入run方法会先调用new SpringApplication()构造方法进行初始化操作 public SpringApplication(ResourceLoader resourceLoader, Class<?>... primarySources) { this.resourceLoader = res
2020-11-29 18:53:25
1809
原创 Spring Boot实战(二)--集成Shiro
springboot集成shirospringboot集成shiro实现权限控制文章目录springboot集成shiro1 pom2 jwt工具类-JwtUtil3 jwt类-JwtToken4 自定义拦截器-JwtFilter5 AuthRealm6 ShiroConfig7 全局异常处理8 OAuthConstant9 RestResponse10 登录controller11 资源controller1 pom<?xml version="1.0" encoding="UTF-8"?&
2020-11-29 17:09:59
2087
原创 Spring Boot实战(一)--集成ElasticSearch
1 ElasticSearch简单使用1 简介Lucene是一个信息检索工具包,不包含搜索引擎系统。包含索引结构、读写索引的工具、排序,搜索规则等工具类。ElasticSearch是基于Lucene做了一些封装和增强。是一个高扩展的分布式的全文搜索引擎。可以当作数据库,可以建立索引(库)、文档(库中的数据)2 安装1 elasticsearch --解压 --解决跨域 config/elasticsearch.yml: http.cors.enabled: true h
2020-11-28 20:41:17
1787
原创 Spring原理(二)--循环依赖原理
此篇文章建立在已经了解bean创建原理之上,若不了解,请先阅读本人上一篇文章Spring原理(一)–IOC原理1 场景@Componentpublic class X { @Autowired Y y; public X(){ System.out.println("X"); }}@Componentpublic class Y { @Autowired X x; public Y(){ System.o
2020-11-28 18:48:51
5009
原创 Git常用命令
Git常用命令1全局配置git config --global user.name ""git config --global user.email ""2 克隆代码1 因为在window系统中,clone代码下来,会自动把换行符LF(linefeed character) 转换成回车符CRLF(carriage-return character)。这时候我们本地的代码都是回车符。所以eslint会报错。解决:克隆代码前git config --global core.autocrlf fal
2020-11-22 19:57:39
1784
原创 HashMap原理
HashMap底层原理jdk1.8HashMap底层基于数组+链表+红黑树map的put操作: public V put(K key, V value) { return putVal(hash(key), key, value, false, true); }1 这里会根据map的key,计算一个hash值,然后和数组的最大索引进行&操作,算出在数组的位置,如果key为null,放入数组下标0位置。这里并不是直接使用key.hashCode(),而是使用进
2020-11-19 16:09:15
3887
原创 Spring原理(一)--IOC原理
1 环境搭建1 pom: <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>5.2.6.RELEASE</version> </dependency>2 Appconfig: @ComponentScan("com.s
2020-11-14 18:12:02
6146
原创 SpringMVC(二)--手写框架
手写SpringMVC框架1 依赖<dependencies> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.1.0</version> <
2020-10-19 20:47:39
1808
原创 SpringMVC(一)--执行原理
SpringMVC原理1 框架搭建(xml方式)1 依赖 <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>4.3.8.RELEASE</version> </dependency>2 webapp/WEB
2020-10-19 20:34:05
3751
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人