Java线程池
如你所见,没有内容
SpringCloud
源码
https://github.com/jiushiboy/springcloud
SpringCloud组件认知
服务注册与发现 Eureka->Nacos服务调用1 Ribbon->LoadBalancer服务调用2 Feign->OpenFeign服务熔断 Hystrix->Sentinel服务网关 Zuul->Gateway服务配置 Config->Nacos服务总线 Bus->Nacos
微服务模块开发步骤
建Module改pom写yml主启动业务类
开启热部署Devtools
第一步: 将依赖引入到需要热部署子模块的pom文件中
123456<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <scope>runtime</scope&g ...
Maven中遇到的问题
Maven的配置及镜像问题
当小伙伴们百度CSDN找到了Maven的阿里云镜像:
123456<mirror> <id>nexus-aliyun</id> <mirrorOf>central</mirrorOf> <name>Nexus aliyun</name> <url>http://maven.aliyun.com/nexus/content/groups/public</url></mirror>
但是替换之后发现并不能解决您的问题,此时可以将Maven镜像更换成如下:
123456<mirror> <id>aliyunmaven</id> <mirrorOf>*</mirrorOf> <name>阿里云公共仓库& ...
遇错及笔记
项目中遇到的问题
Maven下载依赖总是出问题
参考https://jiushiboy.github.io/posts/18832/
IDEA中你的.yml文件是否有过不被spring管理没有小绿叶呢?
1.如果你是SpringBoot的项目请先导入完Maven依赖刷新重试;
2.安装yml插件,如果已经安装请检查插件状态是否启动(插件名称为YAML和YAML/Ansible supprt)这两个插件一般都是已经安装好了的,在你插件的Installed中可以搜索到;
3.如果以上两个解决方案都不管用请试试在File-Project Structure-Modules中选中你的子模块右键Add一个Spring,添加完成之后选中模块下的Spring在右边点绿色击小叶子进行spring.config.name添加;
IDEA中你发现在工具栏中你SpringBoot启动的项目那片小绿叶是灰色的
https://lux-sun.blog.csdn.net/article/details/108014739
关于Eureka注册端配置文件等都没有错却发现注册不 ...
Java集合学习笔记
ArrayList
数据结构为Array数组;
通过索引下标实现了随机取值效率高;
增删效率低,因为增加或删除需要移动数组中的元素;
Vector
数据结构同于ArrayList
底层比ArrayList多一个Synchronized锁;
CopyOnWriteArrayList
数据结构与ArrayList相同,数组Array
写时加锁复制:ReetrantLock保证线程安全,修改数组之前拷贝一份,操作新数组,并赋值给Array,旧数组丢弃;
读取操作无锁,读取的是旧数组,写不会阻塞读,读写分离
弱一致性:写操作会生成新的数组,读的数据就可能被修改,迭代器也是弱一致性,读的是快照;
LinkedList
数据结构: 链表,维护一个内部类Node,元素以Node节点的Item属性存在,同时维护next和prev记录前驱后继的指针;
双端队列,实现了Deque接口,支持首部和尾部存取元素;
ArrayBlockingQueue数组阻塞队列
静态数组,容量固定必须指定长度,没有扩容机制,没有元素的下标位置null占位;
锁:ReentrantLock,读取使用同一把锁,操作的是同一 ...
SpringBoot总结
SpringBoot的配置文件格式
application.properties或者application.yml,主要区别是书写格式不同;
1.properties1springboot.user.name=jiushiboy
2.yml123springboot:user: name: jiushiboy
properties文件格式是无序的,yml文件格式是有序的(不支持@PropertySource注解导入配置);
SpringBoot的核心注解
启动类上面的注解是@Spring Boot Application,它是Spring Boot的核心注解,主要包含三个注解:
@SpringBootConfiguration:组合@Configuration注解用于配置文件功能;
EnableAutoConfiguration:打开自动配置,也可以关闭某个自动配置选项;1@SpringBootApplication(exclude={DataSourceAutoConfiguration.class})
@ComponentSc ...
Spring常见面试题
Spring简介
Spring是一个轻量级的IOC和AOP容器框架。是为Java应用程序提供基础服务的一套框架,目的是为了简化企业应用程序的开发,使得程序员只需要关注业务需求;
Spring Context:提供框架式的Bean访问方式,以及企业级功能(JNDI、定时任务等);
Spring Core:核心类库,所有功能都依赖于该类库,提供IOC和DI服务;
Spring AOP:AOP切面服务;
Spring Web:提供了基本的面向Web的综合特性,提供常用框架如SpringMVC的支持,Spring能管理这些框架,将Spring的资源注入给框架,也能在这些框架的前后加入拦截器;
Spring MVC:提供面向Web应用的Model-View-Controller,及MVC实现
Spring DAO:对JDBC的抽象封装,简化数据访问的异常处理,并能统一管理JDBC事务;
Spring ORM:对现有的ORM框架的支持如(MyBatis,Hibernate);
Spring的优点
Spring低侵入式设计,代码的污染极低;
Spring的DI机制将对象之间的依赖关系交由框架处 ...
MySQL优化(精华)
SQL语句及索引的优化
尽量避免使用子查询列:select * from table1 id(select id from table2 where name=’jiushi’);子查询在Mysql5.5版本中先查外表再匹配内表,而不是先查询table2,当外表数据很大时,查询速度会非常慢;在Mysql5.6版本中采用join关联方式对其进行了优化,这条SQL会自动转为select table1.* from table1 join table2 on table1.id=table2.idPs:优化只针对select有效,对Update/Delete子查询无效,生产环境应避免使用子查询;
避免使用函数索引列:select * from table where year(StartTime) >= 2016;因为Mysql不像Oracle一样支持函数索引,即使StratTime字段有索引,也会全表扫描;解决方案:select * from table where StartTime>=’2020-12-14’
用IN来替换ORselect * from table wh ...
Mybatis常见面试题总结
Mybatis到底是啥呢?
Mybatis是一个半ORM(对象关系映射)框架,它封装了JDBC,加载驱动,连接创建等操作,使得开发者只需要关注SQL的编写,可以对SQL进行复杂优化,灵活度高;(Hibernate根据实体类来生成对应的SQL导致无法进行SQL调优,而Mybatis则是开发者手动编写SQL)
Mybatis有XML,注解两种方式来配置映射原生信息,将POJO映射成数据库中的记录,避免了几乎所有的JDBC代码和手动设置参数以及获取结果集;
通过XML或者注解的方式将要执行的各种Statement配置,并且通过Entity实体类和Statement的SQL动态参数进行映射生成最终执行的SQL,最终Mbatis框架执行SQL并且将结果映射为Java对象返回;(简单来说就是从执行SQL到返回ResultSet的过程)
Mybatis的优点与缺点优点:
开发者编写SQL,灵活性高,不会对应用程序或者数据库的现有设计造成任何影响,SQL写在XML或者使用注解,解除了SQL与程序代码的耦合,便于统一管理;提供XML标签支持编写动态SQL语句,且可以重用
与原生JDBC操作相比,减少 ...
SpringMVC面试题详解
简介
SpringMVC是一个基于Java并且实现了MVC设计模式的请求驱动类型的轻量级WEB框架,通过把Model、View、Controller分离,将Web层进行职责解耦,把复杂的Web应用分成逻辑清晰的几部分,简化开发,减少出错,方便开发人员之间的配合;
流程
用户发送请求到前端控制器DispatcherServlet
DispatcherServlet收到请求,访问HandlerMapping处理器映射器,请求获取Handler
HandlerMapping根据配置或者注解找到最终要执行的Handler返回Handler
前端控制器请求HandlerAdapter适配器处理器执行Handler
Handler执行完毕返回ModelAndView逻辑视图
前端控制器访问ViewResolver视图解析器解析成为真正的视图,返回View给前端控制器
前端控制器将Model数据进行视图渲染最终展示给用户
优点
可以支持多种视图技术如Freemarker、thymeleaf等,不仅仅只局限于JSP
与Spring框架集成(如IOC、AOP)
清晰的角色分配:Disipatcher ...