栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

第三阶段>>>

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

第三阶段>>>

                                          

目录

                                          

问题1:maven的优势有哪些?

问题2:jar包是如何产生冲突的?

jar包冲突的解决方案

问题3:依赖传递性原理是什么?

问题4:怎么理解sping容器?


DAY01
一、
JDBC连接数据库
开发效率高,运行慢;

1.sping核心是sping,简化框架的开发 理解:springboot是框架的框架
2.spingMVC 理念:主要负责是负责前后端交互
媒介:http(不安全) https(安全) 密钥:证书(公钥私钥) 协议
TCP/IP协议(3次五首规则) 速度很快
常用工具:ajax
3.spring框架 
主要作用:主要整合第三方框架,使得程序可以以一种统一的方式进行管理

核心规范概念:控制反转(IOC) 依赖注入(DI)  面向切面编程(AOP)

二、关于maven
Maven项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的项目管理工具。


问题1:maven的优势有哪些?


1、maven的创建本地仓库管理项目
2、maven的生命周期(install clean指令) 前者用来打包项目传给后面人员开发 后者清包
3、maven的坐标,maven可以管理依赖jar包,根据需求找坐标添加jar包
4、解决jar包版本不兼容问题

问题2:jar包是如何产生冲突的?

A->B->C->D1(log 15.0):A中包含对B的依赖,B中包含对C的依赖,C中包含对D1的依赖,假设是D1是日志jar包,version为15.0

E->F->D2(log 16.0):E中包含对F的依赖,F包含对D2的依赖,假设是D2是同一个日志jar包,version为16.0

当pom.xml文件中引入A、E两个依赖后,根据Maven传递依赖的原则,D1、D2都会被引入,而D1、D2是同一个依赖D的不同版本。
当我们在调用D2中的method1()方法,而D1中是15.0版本(method1可能是D升级后增加的方法),可能没有这个方法,这样JVM在加载A中D1依赖的时候,找不到method1方法,就会报NoSuchMethodError的错误,此时就产生了jar包冲突。

jar包冲突的解决方案

Maven 解析 pom.xml 文件时,同一个 jar 包只会保留一个                                                   

>>>Maven默认处理策略最短路径优先

Maven 面对 D1 和 D2 时,会默认选择最短路径的那个 jar 包,即 D2。E->F->D2 比 A->B->C->D1 路径短 

>>>最先声明优先                                                                                                                                   如果路径一样的话,如: A->B->C1, E->F->C2 ,两个依赖路径长度都是 2,那么就选择最先声明。

用于使用的jar包都来源于本地库,本地库的jar包来源于私服镜像和远程服务器

三、ideal如何整合maven(回顾下之前第二阶段)
前提:打开设置先去配置meaven的setting.xml(里面本地仓库以及镜像仓库)  确定maven的安装路径
第一步: 创建springboot工程,勾选web 
第二步: 在boot工程中创建maven项目,刷新下载或更新jar包
第三步: 项目里分层控制层 测试 启动类(RunApp)

3.1延申之maven坐标
manven坐标主要是标识项目,并且标识 唯一标识。可通过此被依赖
项目操作时,与本地仓库一一对应

3.2 maven命令
clean用来清空项目中的target文件
Install用来打包文件生成target文件

3.2.1打包的类型
1)jar包文件>>>适合springboot项目/工具API项目/框架的项目
2)war包文件>>>动态web项目 JSP类型 tomcat服务器
3)pom类型>>>POM类型表示”聚合工程“(指多个项目合并在一起),里面有若干子项目,管理灵活。微服务架构设计一般采用POM类型。
每次打包,会在2个位置生成jar包文件
位置1:target文件目录中
位置2:根据坐标,在本地仓库中生成具体的jar包文件,该文件可以被其它项目“依赖“

3.3mavenjar包依赖的传递性
案例:用户只需引入特定的jar包文件,则maven可以通过依赖的传递性,实现其它jar包文件的传入
数据结构说明:
A的jar依赖Bjar Bjar依赖Cjar 如果只导入Ajar则自动依赖B/C

3.3.1Jar传递性的实现原理


问题3:依赖传递性原理是什么?


第一步当maven扫描依赖信息时,会根据坐标找到对应的jar包文件
第二步之后扫描当前目录下的xx.pom文件
第三步根据pom文件中的依赖项depenency再次查找其它的依赖jar包,直到所有jar包依赖完成为止。

3.3.2jar包传递安全性的问题(扩展)
问题:jar包文件都是通过网络下载而来的,如何保证文件不被篡改?
    
四、关于hash基本常识
问:数据据相同以及相同的算法,hash值必定相同!!
问:数据不同,但hash算法相同,hash值可能相同!!比如hash的碰撞(不同的数据经过相同的算法得到同样的hash值)

五、关于Springboot版本管理说明
补充说明1:spring-boot-dependencies是sprigboot官方进行i调试之后,将所有的管理的jar包进行了定义,从根本上解决了jar包版本冲突的问题。不用写版本号,一般是整合处理。并且取代了spring里面xml文件,一并配置了。
补充说明2:如果需要引入其它的jar包文件,只需要添加jiar包名称即可。
补充说明3:特殊的jar包文件你,需要手动添加版本号。

六、关于pom文件里面build标签作用
说明:当spingboot项目需要打包时,sprngboot中的build标签会起作用,将springboot按照可以执行的方式打成jar包文件。如果没有启动时候会报错(error:没有主清单)
运行打包DOS命令格式: java -jar 包名.jar

七、关于配置文件说明
7.1配置文件名字
springboot项目,默认配置文件的名称 application.properties 名称固定
7.2properties语法说明
1)语法说明
数据结构 key=value
value中间不要有空格
properties文件程序默认读取采用8859编码
pro文件中key名字不能复用
7.3YML语法说明
1)语法说明
数据结构”key“(空格)value 
server
 port:
key的关键字有层级缩进效果,注意缩进
YML文件默认次啊用UTF-8编码格式
value中不要有太多的空格
yml文件中的key的名称不能复用,注意层级(第二层在第一层基础缩进)

八、动态为属性赋值(重要)
需求说明:
一些回将名称直接写死到变量中,如果后续需要修改,则需要改变原阿门,后期维护不方便。
解决方案:                                                                                                                                         第一种:动态为属性赋值。

>>>编辑YML文件

第二种:用pro文件为属性赋值
>>>编辑YML文件 它是spring的核心配置文件,主要的目的是为了整合第三方框架而使用的

九、关于IOC的说明
具体含义:将创建对象的权力交给spring容器管理
原因:如果将对象自己管理,则必然出现“耦合性高”现象,不方面扩展
容器:是一种数据结构类型 Map集合
KEY: 类名首字母小写

问题4:怎么理解sping容器?

vaue:spring为当前的类创建的对象只要程序启动成功,则Map集合中(容器),里边包含了所有的IOC管理的对象。

Day02

sping容器管理对象用法

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/352000.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号