Spring
https://www.ibm.com/developerworks/cn/java/j-master-spring-transactional-use/index.html
SpringMVC
工作流程:
1. 用户发送请求至前端控制器DispatcherServlet
2. DispatcherServlet收到请求调用HandlerMapping处理器映射器,请求获取Handler。
3. 通过HandlerMapping得到HandlerAdapter, 经过适配调用具体处理器Handler.
4. Handler执行完成返回ModelAndVIew
5. DispatcherServlet将ModelAndView送给ViewResolver视图解析器处理,解析返回具体的view
6. DispatcherServlet将Model渲染到view视图(即将模型数据填充至视图中)
7. DispatcherServlet响应用户
Maven
1.maven中jar包冲突产生的原因
若项目中多个Jar同时引用了相同的Jar时,会产生依赖冲突,但Maven采用了以下几种避免冲突的策略,因此在Maven中是不存在依赖冲突的。
2.查看包冲突
mvn分析包冲突命令:mvn dependency:tree
打开pom.xml文件,在Dependency Hierarchy(依赖列表)中查看jar包的依赖层次关系。在过滤栏中输入commons-codec,左侧出现了commons-codec相关包的依赖结构,右侧则是pom.xml全部依赖包的列表展示。
3. Maven 解决依赖冲突
3.1 短路优先
A.jar——>B.jar——>X.jar
C.jar——>X.jar
若本项目引用了A.jar,A.jar又引用了B.jar,B.jar又引用了X.jar,并且C.jar也引用了X.jar。
在此时,Maven只会引用引用路径最短的Jar。
3.2 声明优先
若引用路径长度相同时,在pom.xml中谁先被声明,就使用谁。
3.3 版本最新优先
假设 有以下两个依赖关系:其中C1和C2是两个相同的jar包,他们只是version版本号不同
A->B->C1 依赖关系: A包依赖B包,B包依赖C1包
E->D->C2 依赖关系: E包依赖D包,D包依赖C2包
当我们在项目中同时引入了A包和E包,按照maven的依赖传递原理,那么我们相当于在项目中同时引入了两个C包,只是他们的version版本号不同,这时候就会出现冲突了,如果我们调用了C2中一个method方法,这个方法在C1中不存在(可能是C2高版本升级之后新添加的方法),那么jvm在进行类加载的时候,加载按照A->B->C1顺序,这个时候就会报NoSuchMethodError的错误,jar包冲突问题就出现了
4. maven中jar包产生冲突之后的解决方案
既然有多个版本号的jar依赖存在,那我们就自然而然的想到,移除多余的jar包,只保留一个不就可以了,事实确实如此,我们可以通过移除内部依赖的jar包达到解决jar包冲突的目的。
4.1 移除的方式有两种,第一种是借助于maven helper插件中的Dependency Analyzer分析冲突的jar包,然后在提示冲突的jar包上面右击Exclude,然后刷新就可以了
4.2 手动移除,这个是通过在pom中添加标签达到解决jar包冲突的目的
Git面试题
Redis
redis 缓存案例:
1. 根据key从缓存中获取对象
2. 如果对象不为空,直接返回
3. 如果对象为空,进行数据库查询
4. 如果从数据库查询出的对象不为空,则放入缓存(设定过期时间)
Spark
Spark 和 map reduce区别
负载均衡
RPC
什么情况下需要序列化:
当你想把的内存中的对象保存到一个文件中或者数据库中时候;
当你想用序列化在网络上传送对象的时候;
当你想通过RMI传输对象的时候;
序列化注意事项:
(1) 当一个对象被序列化时,只保存对象的非静态成员变量,不能保存任何的成员方法、静态的成员变量和transient标注的成员变量。
(2) 如果一个对象的成员变量是一个对象,该成员对象的类必须也实现Serializable接口才能序列化。
(3) 如果一个可序列化的对象包含对某个不可序列化的对象的引用,那么整个序列化操作将会失败,并且会抛出一个NotSerializableException。可以将这个引用标记transient,那么对象仍然可以序列化。
json工具
Spring Mybatis
Spring Boot为服务
redis
https://msd.misuland.com/pd/3065794831805580868
https://segmentfault.com/a/1190000014488045
https://baijiahao.baidu.com/s?id=1619572269435584821&wfr=spider&for=pc
https://my.oschina.net/u/4052893/blog/3001173
https://baijiahao.baidu.com/s?id=1626448266563689166&wfr=spider&for=pc
https://blog.csdn.net/qq_36071795/article/details/83988177
多线程并发
https://www.cnblogs.com/Jansens520/p/8624708.html
https://www.cnblogs.com/jxldjsn/p/10872154.html
https://www.cnblogs.com/jagh/p/dxc.html
http://developer.51cto.com/art/201709/552926.htm
https://baijiahao.baidu.com/s?id=1619715630323058430&wfr=spider&for=pc
https://wenku.baidu.com/view/58189549580216fc710afd08.html
http://ju.outofmemory.cn/entry/363342
RPC
https://my.oschina.net/u/1186503/blog/1632952
https://www.shsxt.com/it/java/1599.html
https://baijiahao.baidu.com/s?id=1617168792520937104&wfr=spider&for=pc
https://www.jianshu.com/p/28e48e5f9c73
https://www.jianshu.com/p/75c55e8bf2a5
http://youzhixueyuan.com/dubbo-interview-question-answers.html
---------------------
作者:苗尼玛乔
来源:CSDN
原文:https://blog.csdn.net/qq_24871519/article/details/81673515
版权声明:本文为博主原创文章,转载请附上博文链接!
---------------------
作者:a745233700
来源:CSDN
原文:https://blog.csdn.net/a745233700/article/details/80963758
版权声明:本文为博主原创文章,转载请附上博文链接!
---------------------
作者:EllisTian
来源:CSDN
原文:https://blog.csdn.net/T2080305/article/details/82144543
版权声明:本文为博主原创文章,转载请附上博文链接!