JavaEE期末复习知识点总结

Java企业应用开发环境

Maven的基础概念

Maven是一个项目管理工具,可以对 Java 项目进行构建、依赖管理

Maven仓库

Maven 仓库是项目中依赖的第三方库,这个库所在的位置叫做仓库, 是放置所有 JAR 文件的地方

Maven有三个仓库,本地仓库(local),远程仓库(remote),中央仓库(central)

云软件版本管理

working tree、index、head区别

  • 工作区(working tree):当前工作的目录
  • 暂存区(index):准备新提交的暂存区域
  • HEAD代表的是最近的一次commit的信息

revert、reset、rebase的含义

  • git revert 放弃某次提交
  • git reset 是回滚到某次提交
  • git rebase 当两个分支不在一条直线上,需要执行merge操作时,使用该命令操作。

Git进行版本管理的优点

  • 适合分布式开发
  • 速度快,占用空间小
  • 可以离线工作
  • 开发者之间很容易解决冲突
  • 服务器压力和数据量小

JSON基本概念和语法

JSON的定义

  • JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation)
  • 是轻量级的文本数据交换格式,JSON 比 XML 更小、更快,更易解析。

JSON语法

  • 数据在名称/值对中
  • 数据由逗号分隔
  • 大括号 {} 保存对象
  • 中括号 [] 保存数组,数组可以包含多个对象

JSON函数

  • JSON.parse()

    从一个字符串中解析出json(键值对)
  • JSON.stringify()

    从一个对象中解析出字符串

JSON对象的表示方法

{
"name":"javaee" ,
"url":"www.java.com"
}

常见Java数据对象

浏览器数据存储

  • localStorage

    localStorage的生命周期是永久的,关闭页面或浏览器之localStorage中的数据也不会消失,localStorage除非主动删除数据,否则数据永远不会消失
  • sessionStorage

    sessionStorage的生命周期是仅当前会话下有效
  • cookie

    cookie生命周期为只在设置的cookie过期时间之前一直有效,即使关闭浏览器和窗口都有效。

List、Map语法

List:

List<String> list = new ArrayList<String>();
//添加元素
list.add("hello");
list.add("world");
//遍历元素
Iterator<String> ite = list.iterator();
while(ite.hasNext())
System.out.println(ite.next());

Map:

Map<String,String> map = new HashMap<>();
//添加元素
map.put("name","Alice");
map.put("age","18");
//遍历元素
Iterator<Map.Entry<String,String>> iterator = map.entrySet().iterator();
while(iterator.hasNext()){
Map.Entry<String,String> node = iterator.next();
System.out.println(node.getKey()+":"node.getValue()");
}

Vue基础语法和语法

  • 双花括号

    <any>{{表达式}}</any>

    作用:将表达式执行的结果输出当调用元素的innerHTML中
  • 指令-循环指令

    <any v-for="tmp in array"></any>

    作用:在遍历array这个集合时,将临时变量保存在tmp中,创建多个any标签
  • 指令-选择指令

    <any v-if="表达式"></any>

    <any v-else-if="表达式"></any>

    作用:根据表达式执行结果的真假,来决定是否要将当前的这个元素 挂载到DOM树
  • 指令-事件绑定

    <any v-on:eventName="handleEvent"></any>

    作用:给指定的元素 将handleEvent的方法绑定给指定eventName事件
  • 指令-属性绑定

    <any :myProp="表达式"></any>

    作用:将表达式执行的结果 绑定 到当前元素的myProp属性

Vue表单与数据的关联运用

<div id="app">
<form>
<span>username:</span><input type="text" v-model="username">
<span>password:</span><input type="password" v-model="password">
</form>
</div>
<script>
new Vue({
el: "#app",
data: {
username: "",
password: "",
}
})
</script>

Mybatis原理和应用基础

Sqlsession的作用

Sqlsession相当于JDBC中的Connection对象,代表一个连接资源的启用,有三个作用:

  • 获取Mapping接口
  • 发送SQL给数据库
  • 控制数据库事务

映射器的作用

在Mybatis中,映射器是最重要的组件,它是由一个接口和对应的XML文件(或@注解)构成,有四个作用:

  • 描述映射规则
  • 配置缓存
  • 提供SQL语句,配置SQL参数类型,返回类型,缓存刷新等
  • 提供动态SQL

Mybatis传递参数的方式

  • 使用@Param注解

    List<User> selectByUsernameAndPassword( @Param("username") String username,@Param("password") String password );
  • 使用Map传递参数

    List<User> selectByMapParams(Map params);
  • 使用java bean传递多个参数

    List<User> selectByBeans(User user);

Mybatis映射器及应用开发

映射器开发:

  1. SQL语句配置
 <configuration>
<!-- 使用映射器时会用到,普通方式无需配置 -->
<settings>
<!-- changes from the defaults for testing -->
<setting name="cacheEnabled" value="false" />
<setting name="useGeneratedKeys" value="true" />
<setting name="defaultExecutorType" value="REUSE" />
</settings>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC" />
<!-- 配置数据库连接信息 -->
<dataSource type="POOLED">
<property name="driver" value="com.mysql.cj.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/test" />
<property name="username" value="root" />
<property name="password" value="root" />
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="com/cc/TestMyBaties/mapping/Student.xml"/>
</mappers>
</configuration>
  1. 接口语句
public interface UserMapper {
@insert("insert into user (username,password) values (#{username},#{password})")
void addUser(User user);
@select("select * from user where id = #{id}")
User selectUserById(int id);
}
  1. 主程序
	public void insertStudent(){
SqlSession session = this.getSessionfactory().openSession();
// 直接使用映射器
UserMapper mapper = session.getMapper(UserMapper.class); User user= new User();
user.setUsername("admin");
user.setPassword("admin"); mapper.addUser(user);
session.commit();
} public static void main(String[] args){
UserService service = new UserService();
service.insertUser(); }

复杂的Mybatis应用程序开发

一对一查询

select *
from class c,teacher t
where c.teacher_id = t.id and c.cid=1

一对多查询

select *
from class c,teacher t,student s
where c.teacher_id = t_id and c.c_id=s.class_id and c.c_id=1

Redis数据共享技术

Redis特点

  • Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用
  • Redis是完全在内存中保存数据的数据库,使用磁盘只是为了持久化
  • Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset。hash等数据结构
  • Redis支持数据的备份,即master-slave模式的数据备份

Redis优势

  • 速度快,因为数据存在内存中,读的速度能达到110000次/s,写的速度能达到81000次/s
  • 支持丰富数据类型,支持string,list,set,sorted set,hash
  • 支持事务,操作都是原子性,所谓的原子性就是对数据的更改要么全部执行,要么全部不执行
  • 丰富的特性:可用于缓存,消息,按key设置过期时间,过期后将会自动删除

主要数据类型

  • String:字符串
  • Hash: 散列
  • List:列表
  • Set:集合

List和Set的特点

  • List和Set都是接口继承于Collection接口
  • List有顺序有重复没有排序
  • set无重复有排序

更多关于Redis的操作,请移步:Jedis的基本操作

Spring框架和依赖注入开发

IOC

Ioc—Inversion of Control,即“控制反转”,不是什么技术,而是一种设计思想。在Java开发中,Ioc意味着将你设计好的对象交给容器控制,而不是传统的在你的对象内部直接控制。所谓IoC,对于spring框架来说,就是由spring来负责控制对象的生命周期和对象间的关系。

Java对象调用另一个Java对象的方法

使用依赖注入(DI-Dependency Injection) 的方式

Spring AOP的基础概念和开发

切面(Aspect)

一个关注点的模块化,这个关注点可能会横切多个对象。事务管理是J2EE应用中一个关于横切关注点的很好的例子。在Spring AOP中,切面可以使用基于模式或者基于@Aspect注解的方式来实现。

连接点(Joinpoint)

在程序执行过程中某个特定的点,比如某方法调用的时候或者处理异常的时候。在Spring AOP中,一个连接点总是表示一个方法的执行。

通知/增强(Advice)

在特定的连接点,AOP框架执行的动作。各种类型的通知包括“around”、“before”和“throws”通知。通知类型将在下面讨论。许多AOP框架包括Spring都是以拦截器做通知模型,维护一个“围绕”连接点的拦截器链。spring aop advice的类型:

  1. 前置通知(before advice),在目标方法执行之前执行。
  2. 返回后通知(after returning advice),在方法正常执行结束之后的通知,可以访问到方法的返回值。
  3. 抛出异常后通知(after throwing advice),在目标方法出现异常时执行的代码,可以访问到异常对象,且可以指定出现特定异常执行此方法。
  4. 后置通知:(after[finally] advice),在目标方法执行之后执行(无论是否发生异常)。
  5. 环绕通知:(around advice),可以实现上述所有功能。

切入点(Pointcut)

指定一个通知将被引发的一系列连接点的集合

织入(Weaving)

组装方面来创建一个被通知对象。这可以在编译时完成(例如使用AspectJ编译器),也可以在运行时完成。Spring和其他纯Java AOP框架一样,在运行时完成织入。

代理(Proxy)

AOP框架创建的对象,包含通知。 在Spring中,AOP代理可以是JDK动态代理或者CGLIB代理。

SpringMvc应用程序开发

Springmvc是一个基于mvc的web框架,它是spring框架的一个模块。

SSM

SSM(Spring+SpringMvc+Mybatis)框架的开发,只涉及 Spring 与 MyBatis 的整合以及 Spring MVC 与 MyBatis 的整合。

SpringMvc常用注解

  • @Controller

    负责注册一个bean到sprng上下文中
  • @RequestMapping

    注解为控制器指定可以处理那些URL请求
  • @RequestBody

    该注解用于读取Request请求的body部分的数据,使用系统默认配置的HttpMessageConvert进行解析,然后把相应的数据绑定到要返回的对象上
  • @ResponseBody

    该注解用于将Controller的方法返回的对象,通过适当的HttpMessageConvert转化为指定格式后,写入到Response对象的body数据区

LayUI Table与SpringMVC综合应用

了解Table的语法

创建一个table实例最简单的方式是,在页面放置一个元素

,然后通过 table.render() 方法指定该容器。

<table id="demo" lay-filter="test"></table>
//引入layui.js
<script src="/layui/layui.js"></script>
<script>
//layui指定加载table模块
layui.use('table', function(){
var table = layui.table;
//第一个实例
table.render({
elem: '#demo'
,height: 312
,url: '/demo/table/user/' //数据接口
,page: true //开启分页
,cols: [[ //表头
{field: 'id', title: 'ID', width:80, sort: true, fixed: 'left'}
,{field: 'username', title: '用户名', width:80}
,{field: 'sex', title: '性别', width:80, sort: true}
,{field: 'city', title: '城市', width:80}
,{field: 'sign', title: '签名', width: 177}
,{field: 'experience', title: '积分', width: 80, sort: true}
,{field: 'score', title: '评分', width: 80, sort: true}
,{field: 'classify', title: '职业', width: 80}
,{field: 'wealth', title: '财富', width: 135, sort: true}
]]
});
});
</script>

需要从后端返回的数据类型:

  "code": 0,
"msg": "",
"count": 1000,
"data": [
{
"id": 10000,
"username": "user-0",
"sex": "女",
"city": "城市-0",
"sign": "签名-0",
"experience": 255,
"logins": 24,
"wealth": 82830700,
"classify": "作家",
"score": 57
},
{
"id": 10001,
"username": "user-1",
"sex": "男",
"city": "城市-1",
"sign": "签名-1",
"experience": 884,
"logins": 58,
"wealth": 64928690,
"classify": "词人",
"score": 27
}
}

SpringMvc前后端数据交互

程序设计

使用ajax进行前后端数据交互

$.ajax({
type: "Get",
url: "/springmvcajax/getUsersInfo",
dataType: "json",
//如果需要向后端发送数据使用
//data: param
success: function(data){
console.log(data.msg);
},
error: function(err){
console.log(err.msg)
}
})

SpringBoot介绍和简单应用

SpringBoot的特点

  • 搭建项目快
  • 测试简单,内置了Junit,Spring Boot Test等多种测试框架
  • SpringBoot让配置变的更简单
  • 内嵌容器,省去了配置Tomcat的繁琐
  • 方便监控,使用Spring Boot Actuator组件提供了应用的系统监控,可以查看应用配置的详细信息

完结

JavaEE期末复习知识点总结的更多相关文章

  1. JavaEE期末复习

    期末复习 基础 jsp技术中嵌入java代码,使用的符号 <%%> 掌握jsp技术中引用其他标签库指令标签的书写 掌握jsp技术中request对象setAttribute( ).setC ...

  2. SCE信号期末复习省流小助手(懒人版)

    XDU-SCE网信院信号期末复习省流小助手(懒人版) 本人根据西安电子科技大学网络与信息安全18年期末考试整理的考点和题型 以下题型代表了信号与系统课程的 精髓 若能掌握以下知识点和题型,80分稳有: ...

  3. JavaEE第一天知识点总结

    JavaEE第一天知识点总结 持久化是将程序中的数据在瞬时状态和持久状态间转换的机制 DAO: 英文全称: Date Access Object(数据存取对象) 位于业务逻辑和持久化数据之间 实现对持 ...

  4. Hadoop期末复习

    Hadoop期末复习 选择题 以下选项中,哪个程序负责HDFS数据存储. B A.NameNode B.DataNode C.Secondary NameNode D.ResourceManager ...

  5. python爬虫期末复习

    python期末复习 选择题 以下选项中合法的是(A). A 爬取百度的搜索结果 B 爬取淘宝的商品数据 C 出售同学的个人信息 D 为高利贷提供技术服务 网站的根目录下有一个文件告诉爬虫哪些内容可以 ...

  6. C#知识点提炼期末复习专用

    根据内部消息称:有三类题型:  程序阅读题:2题  简答题:2题 (主要是对概念的考查)  编程题:暂定2-3题 复习要点: .net framework 通用语言开发环境..NET基础类库..NET ...

  7. now code——处女座的期末复习

    题目描述 快要期末考试了,处女座现在有n门课程需要考试,每一门课程需要花ai小时进行复习,考试的起始时间为bi,处女座为了考试可以不吃饭不睡觉,处女座想知道他能否复习完所有的科目(即在每一门考试之前复 ...

  8. 南京邮电大学 JavaA期末复习要点总结

    南京邮电大学 JavaA复习要点: Chap1 入门 1.  Java应用程序开发过程教材P14~P15 Chap 2 基本语法 1.      标识符的命名规则教材P19 字母下划线美元符号开头,除 ...

  9. [Noip复习知识点][个人向]Zackzh

    只是列列一些要复习的,努力复习吧,有种noip退役的赶脚. 一.模拟 (这你也不会?退役吧) 二.DP 1.基础dp 2.区间dp 3.状压dp 4.树形dp 6.概率(期望)dp 7.环形dp 8. ...

随机推荐

  1. 如何创建一个 Cocoapods 插件

    原文链接 前言 我们在使用 Cocoapods 过程中,如果发现它未能满足我们的要求该怎么办呢? 最简单的粗暴的办法就是 fork 一份 Cocoapods 源码,然后自己公司内部或者个人直接针对源码 ...

  2. petite-vue源码剖析-优化手段template详解

    什么是<template>元素? <template>是2013年定稿用于提供一种更统一.功能更强大的模板本存放方式.具体表现为 通过<template>元素属性c ...

  3. 03 Java的数据类型分为两大类 类型转换 八大基本类型

    数据类型 强类型语言:要求变量的使用要严格符合规定,所有变量都必须先定义后才能使用 Java的数据类型分为两大类 基本类型(primitive type) 数值类型 整数类型 byte占1个字节范围: ...

  4. Net之线程池的优点

     使用线程池的好处:     1.减少在创建和销毁线程上所花的时间以及系统资源的开销     2.如不使用线程池,有可能造成系统创建大量线程而导致消耗完系统内存以及"过度切换".

  5. Java案例——反转字符串

    /*案例:将用户输入的字符串反转并输出 分析:1.使用Scanner 类获取用户输入的字符串 2.定义一个方法将字符串反着遍历并拼接 3.定义变量接受并输出* */public class Strin ...

  6. JavaWeb 07_创建web项目连接MySQL实现注册登录功能

    一.创建一个web项目,参照JW/01_创建web项目及部署 二.在NAVICat 里建数据库 db_01,建表tb_user ,字段UName .Pwd 三.在web下创建一个Directory, ...

  7. Docker——时间配置

    一.常用时间表示 GMT(Greenwich Mean Time):格林威治时间,格林威治被定义为了\(0^o\)经线开始的地方,地球每15进度分为一个时区,共24个时区,相邻时区相差1个小时.中国位 ...

  8. 6月21日 Django ORM那些相关操作(表关联、聚合查询和分组查询)

    一.ForeignKey操作 正向查找 对象查找(跨表) 语法: 对象.关联字段.字段   示例: book_obj = models.Book.objects.first() # 第一本书对象 pr ...

  9. shellLab实验报告

    一.预备知识 阅读课本CSAPP的第八章后完成本次实验,要求熟练掌握以下内容: 进程的概念.状态以及控制进程的几个函数(fork,waitpid,execve). 信号的概念,会编写正确安全的信号处理 ...

  10. VULNCMS

    靶机准备 导入虚拟机,并将网络模式设置为NAT 扫描ip netdiscover -r 192.168.164.0/24 渗透测试 扫描端口 nmap -sS -sV -T5 -A -p- 192.1 ...