JavaEE期末复习知识点总结

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组件提供了应用的系统监控,可以查看应用配置的详细信息

完结

posted @ 2021-05-27 23:59  fengzeng  阅读(1200)  评论(1编辑  收藏  举报