zoukankan      html  css  js  c++  java
  • 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', 80, sort: true, fixed: 'left'}
          ,{field: 'username', title: '用户名', 80}
          ,{field: 'sex', title: '性别', 80, sort: true}
          ,{field: 'city', title: '城市', 80} 
          ,{field: 'sign', title: '签名',  177}
          ,{field: 'experience', title: '积分',  80, sort: true}
          ,{field: 'score', title: '评分',  80, sort: true}
          ,{field: 'classify', title: '职业',  80}
          ,{field: 'wealth', title: '财富',  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组件提供了应用的系统监控,可以查看应用配置的详细信息

    完结

  • 相关阅读:
    spring3.0使用annotation完全代替XML(续)
    spring3.0使用annotation完全代替XML
    Hibernate Session中的save(),update(),delete(),saveOrUpdate() 细粒度分析
    SpringMVC介绍之Validation
    Mysql 5.7 使用SSL安全连接
    深入分析Java ClassLoader原理
    Hibernate 动态分页查询
    【翻译自mos文章】Linux的/var/log/messages是空的(0k),messages.0, messages.1也是空的
    <html>
    Android Notification和权限机制探讨
  • 原文地址:https://www.cnblogs.com/Fzeng/p/14820407.html
Copyright © 2011-2022 走看看