maven高级
- 1.有maven的话,可以自己导入jar包嘛?
- 2.maven的主要标签
- 3.企业中真实的项目是什么样子的,怎么分的结构。
- 4.拆分与聚合:
- 5.父子和模块之间的依赖关系:
- 6.依赖冲突:
- 7.jar包冲突的解决方案:?
- 8.看一下el表达式???
- 9.sql语句用注解的话,就不需要配置别名了
- 10.classpath*和classpth的区别。
- 11.写xml不提示,点进去或者全局搜索,复制一下属性。
- 12.双击shift(全局搜索):(记得右边打勾)
- 13.看一下,vo,bo,po???
- 14.maven操作:只操作父工程就行了
- 15.父项目进行maven打包后,生成web模块的war包,被引入模块的jar包,都会被放到web模块的web-inf-lib下面。
- 16.如何不被别人反编译看到源码。
- 17.私服的作用:相当于中央仓库的缓存,
- 18.私服里的jar包来源:
- 19.mybatis逆向工程:
1.有maven的话,可以自己导入jar包嘛?
可以,但是使用maven打包,会报错,提示xxx.jar不存在,需要将jar包手动添加到maven本地仓库中
maven项目手动导入jar包依赖_我在北国不背锅的博客-CSDN博客_maven项目手动导入jar包
2.maven的主要标签
<groupId>公司</groupId>
<artifactId>项目</artifactId>
<version>版本</version>
SNAPSHOT: 快照 测试版本
RELEASE: 发行 正式版本
<packaging>打包方式</packaging>
jar : java工程(默认值)
war : web工程
pom : 父工程
<dependencies> 我需要谁 </dependencies>
<modules> 父工程时候才有, 里面用于声明当前父工程管理的子工程 </modules>
3.企业中真实的项目是什么样子的,怎么分的结构。
java包:
|_annotation:放置项目自定义注解
|_aspect:放置切面代码
|_config:放置配置类
|_constant:放置常量、枚举等定义
|__consist:存放常量定义
|__enums:存放枚举定义
|_controller:放置控制器代码
|_filter:放置一些过滤、拦截相关的代码
|_mapper:放置数据访问层代码接口
|_model:放置数据模型代码
|__entity:放置数据库实体对象定义
|__dto:存放数据传输对象定义
|__vo:存放显示层对象定义
|_service:放置具体的业务逻辑代码(接口和实现分离)
|__intf:存放业务逻辑接口定义
|__impl:存放业务逻辑实际实现
|_utils:放置工具类和辅助代码
//src/main/resources目录,里面主要存放静态配置文件和页面静态资源等东西:
|_mapper:存放mybatis的XML映射文件(如果是mybatis项目)
|_static:存放网页静态资源,比如下面的js/css/img
|__js:
|__css:
|__img:
|__font:
|__等等
|_template:存放网页模板,比如thymeleaf/freemarker模板等
|__header
|__sidebar
|__bottom
|__XXX.html等等
|_application.yml 基本配置文件
|_application-dev.yml 开发环境配置文件
|_application-test.yml 测试环境配置文件
|_application-prod.yml 生产环境配置文件
看完这篇,你还用纠结如何划分项目结构和代码分层的问题吗_xcbeyond|疯狂源自梦想,技术成就辉煌-CSDN博客
4.拆分与聚合:
拆分 将原来的一个项目拆分成一个个小的模块, 每个模块都有自己的坐标, 当其它项目需要本模块的功能时, 只需要按照坐标引入本模块就可以了
聚合 通过坐标的形式,将各个模块组装在一起,完成一个项目的功能
5.父子和模块之间的依赖关系:
-
父子工程之间: 继承关系, 子工程可以使用父工程中的jar包
-
模块工程之间: 默认是没有任何关系的,但是可以通过依赖建立两者之间的关系,而且这个依赖关系是可以传递的
* A----->B B----->C * A可以使用C中的类, 我们把这种现象称为依赖传递 * AB BC之间称为直接依赖 AC之间称为间接依赖
6.依赖冲突:
依赖的传递过程中,很容易出现同一jar包的版本冲突问题,这个就称为依赖冲突
7.jar包冲突的解决方案:?
1)第一声明优先原则
2)路径近者优先原则
3)依赖排除
4)版本锁定(常用,还可以优化:提取版本信息)
8.看一下el表达式???
@Value三种情况的用法。
1) ${}是去找外部配置的参数,将值赋过来
2) #{}是SpEL表达式,去寻找对应变量的内容
3) #{}直接写字符串就是将字符串的值注入进去
9.sql语句用注解的话,就不需要配置别名了
10.classpath*和classpth的区别。
classpth:代表当前模块的类路径。
classpath*:代表,当前的模块的类路径,和它引用依赖的类路径。
11.写xml不提示,点进去或者全局搜索,复制一下属性。
12.双击shift(全局搜索):(记得右边打勾)
13.看一下,vo,bo,po???
PO:persistent object 持久对象,
POJO :plain ordinary java object 无规则简单java对象
BO:business object 业务对象
DTO(TO):Data Transfer Object 数据传输对象(组装的)
VO(Value Object)值对象:VO就是展示用的数据,不管展示方式是网页,还是客户端,还是APP,只要是这个东西是让人看到的,这就叫VO
一篇文章讲清楚VO,BO,PO,DO,DTO的区别_pengzhen_pz的博客-CSDN博客
14.maven操作:只操作父工程就行了
15.父项目进行maven打包后,生成web模块的war包,被引入模块的jar包,都会被放到web模块的web-inf-lib下面。
16.如何不被别人反编译看到源码。
17.私服的作用:相当于中央仓库的缓存,
18.私服里的jar包来源:
1)中央仓库获取的。
2)自己推送的。
19.mybatis逆向工程:
mybatis需要程序员自己编写sql语句,mybatis官方提供逆向工程,可以针对单表自动生成mybatis执行所需要的代码(mapper.java、mapper.xml、pojo…),可以让程序员将更多的精力放在繁杂的业务逻辑上。
企业实际开发中,常用的逆向工程方式:由数据库的表生成java代码
https://blog.csdn.net/qq_39056805/article/details/80585941