redis:
String:set,get,getset,setnx,setex,incr,decr
hash:hset,hget,hkeys,hvals,hgetall,hdel,hlen,hexits
list:lpush,lpop,lrange,lindex
set:sadd,smembers,spop,sdiff,sinter,sunion
key:expire,ttl,del
jedis组件:Jedis,JedisPool
0105maven
1.maven作用
svn,git:版本管理工具,在多人协同开发环境下使用。
maven:是一个项目管理工具(创建,编译,运行,打包,测试,依赖包管理)。
通过maven把不同的ide工具下的项目结构统一化。
手工管理jar包,繁琐,同时版本更新不及时。
2.maven中的几个概念
中央仓库:maven官方提供的服务器地址,供下载资源。
企业私服:企业内部通过nexus搭建的maven仓库,下载稳定性。
maven客户端:开发人员需要个人开发机上安装的一套客户端程序,由java语言开发,只提供了命名行操作方式。
本地仓库:通过maven客户端指定本地硬盘某个目录为jar包存储位置。
坐标:maven仓库管理的jar包资源命名,通过groupid,artifactid,version三维坐标来命名一个资源。
3.安装maven客户端
- 解压maven客户端压缩包
- 配置conf/settings.xml
本地仓库
<localRepository>D:\apache-maven-3.6.0\repository</localRepository>
镜像地址
<mirror>
<id>nexus</id>
<mirrorOf>*</mirrorOf>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
</mirror>
<mirror>
<id>nexus-javasm</id>
<mirrorOf>central</mirrorOf>
<url>http://192.168.20.252:8081/repository/maven-public/</url>
</mirror>
- 配置好maven环境变量
MAVEN_HOME:解压目录
PATH:%MAVEN_HOME%\bin
通过mvn -version测试环境变量是否配置成功
4.idea关联maven客户端
在idea下关联mavne,通过idea开发工具下可视化方式来操作maven客户端。
- file-settings-搜maven,配置maven
- file-otherSettings-defaultsettings-搜maven
早知道有这个设置全局设置就好了
就选这两个就行,一个是java工程,一个是web工程
5.maven项目目录结构
src/main/java:该目录下编写java源代码
src/main/resources:该目录放置配置文件
src/main/webapp:web资源目录
src/test/java:该目录下编写测试代码
src/test/resources:该目录下放测试环境的配置文件
6.认识pom文件
- 项目坐标信息
<groupId>com.javasm</groupId>
<artifactId>0105jar</artifactId>
<version>1.0</version>
- 项目打包方式
<!--当前项目打包方式:jar,war,pom-->
<packaging>war</packaging>
- 项目依赖包
<!--当前项目的依赖jar包,类似原来自己拷贝jar包项目目录-->
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.78</version>
</dependency>
</dependencies>
- 其他补充
dependency下的scope属性:
test:表示当前依赖包,只对test指令生效,不参数package打包指令.一般用在junit依赖包。
provided:私有,对源码生效,也不参与打包。一般用在servlet-api依赖包。
compile:参与打包
maven自身维护jar包之间的依赖关系。有时候需要排除自动引入的依赖包
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.3.13</version>
<!--排除依赖包-->
<exclusions>
<exclusion>
<artifactId>spring-jcl</artifactId>
<groupId>org.springframework</groupId>
</exclusion>
</exclusions>
</dependency>
在properties标签下对依赖包的版本进行统一管理
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<spring.version>5.3.14</spring.version>
<servlet.version>4.0.1</servlet.version>
</properties>
7.maven常用命令
clean:清理target编译输出目录。
compile:mavne编译执行,通过maven-compiler-plugin编译插件对项目src下的java代码进行编译。
test:执行test Source代码。一般跳过测试模式,skip test mode
package:项目打包,打jar包或war包
install:把项目打包并安装到本地仓库,可以被其他项目依赖。
deploy:把项目打包并安装本地仓库,并上传maven私服。可以被企业内其他项目引用。
最常用:clean。package,compile
8.运行maven工程
方法1:使用外部tomcat,切记部署后缀为exploded。
方法2:使用内嵌服务器插件来运行项目
<build>
<plugins>
<plugin>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<version>9.4.24.v20191120</version>
<configuration>
<httpConnector>
<port>8081</port>
</httpConnector>
<webApp>
<contextPath>/</contextPath>
</webApp>
</configuration>
</plugin>
</plugins>
</build>
9.自定义骨架
从maven官方骨架创建的项目,缺失目录,以及web.xml有误。
- 先修复好一个web项目的模板
- 在pom文件中添加maven-archetype-plugin骨架创建插件
- 执行archetype:create-from-project指令,去创建骨架,会在target目录下生成骨架内容
- 进入target-archetype目录,执行install指令,把骨架安装到本地仓库
- 执行archetype:crawl指令,扫描本地仓库下的所有骨架资源,生成archetype-catalog.xml
- 找到自定义的骨架坐标信息,打开idea下创建maven项目,点击add archetype添加骨架即可。
10.ssm整合
找不到日志包的话
Redis jedis
只要两个包是永远在一起用的,就不用分别引用
mysql 驱动jar包8。几的要求 那个链接 需要完整连接 后面带时区 和 安全连接的那个东西
记住这个就是初始化容器的意思
为什么mapper文件要放到resources 因为maven 的编译命令,执行的时候 会用他下面的resources 复制resources文件夹下面的xml文件,compiler插件会编译src下面的java文件
但是没有插件去复制 src目录下的xml文件,造成xml文件丢失
最后发现是端口被占用,老师任务管理器关闭了java的后台进程
**/*的意思
这是一种 AntMatch 语法,解释如下:
“**” 表示任意级目录
“*” 表示任意文件
意思就是把所有 /src/main/java 中所有 xml 文件也打包进包中,当使用 mybatis 这种需要写 xml 的框架的时候会要用到
0106maven
1.maven工程继承
子工程继父工程的依赖项
父工程是一个project,一个project下有多个子module.
父工程:把所有子工程都需要引用的依赖放在dependencies,子module自动继承。有些子module需要引用,有写不需要引用的依赖,放在dependencyManagement进行依赖管理,子module需要手工引入依赖但不用指定版本。
父工程的意义:统一管理依赖项的版本,子module不用指定版本,避免多个子module之间出现相同的依赖版本不同。
2.maven聚合工程
控制层可能起名admin 和 interface
不要想当然的去添加依赖,用什么,再去添加什么
jsonFormat 实体类也要用
老师说说有的子moudle里面不能出现任何版本号信息
大概看懂了,jar包可以随便引,但是功能模块的jar包不能随便引,要注意不要循环引用
老师说只要能让他复用,把它分出去就可以了,这个东西很灵活的
classpath* 连jar包里面都会去找,笑死了
@JsonFormat(shape =JsonFormat.Shape.STRING,pattern =“yyyy-MM-dd HH:mm:ss”,timezone =“GMT+8”)
private Date createTime;
我忘了它怎么用了
[添加链接描述](https://blog.youkuaiyun.com/weixin_41860630/article/details/101928062)
单体项目:所有代码放在一个项目中进行编写。
纵向拆分项目:maven聚合工程属于纵向拆分,按照mvc-dao层级结构把单体项目拆分为一个个子module项目。
横向拆分项目:springCloud属于横向拆分,按照功能模块进行拆分。
纵向拆分项目目的:为了提高代码的复用性。把实体,dao,服务,控制层独立为一个个子module,可以被多次引用。
云课堂平台:
后台管理系统接口:管理用户数据(用户,角色,权限),注册用户,课程分类,视频管理,视频审批,授课讲师管理,评论管理,课程收藏。
后台管理前端ui:vue+elementui
门户网站接口:注册,登录,热门课程查看,课程检索,课程收藏,播放视频,发表评论。。。删除评论
门户网站ui:js+css+html+jquery
app:用户注册,登录,查看热门课程,课程检索,收藏课程,观看视频,发表评论。。。删除评论。。。
- 首先创建好各个子module
- 把单体项目的全部依赖项copy到父工程的dependencyManagement,把日志,测试等公共依赖放在dependencies
- 梳理子module之间的依赖关系,不要形成互相依赖。
- 把单体项目的代码分到各个子module
- 根据代码来添加依赖
- 把配置文件分到各个module,建议放在service