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組件提供了應用的系統監控,可以查看應用配置的詳細信息

完結


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM