美團基礎架構研發實習
阿新 • • 發佈:2018-11-24
文章目錄
時間:2018/10/22 – ?
【基礎架構學習】
【Mac解壓和壓縮的命令總結】
zip檔案
壓縮
zip -q -r -e -m -o 'yourName.zip' "zipfile list''
-q :不顯示壓縮排度狀態
-r :子目錄子檔案全部壓縮為zip
-e :壓縮檔案需要加密,終端會提示你輸入密碼的
-m :壓縮完刪除原檔案
-o :設定所有被壓縮檔案的最後修改時間為當前壓縮時間
跨目錄的時候是這麼操作的
zip -q -r -e -m -o '\user\someone\someDir\someFile.zip' '\users\someDir'
解壓
unzip - n text.zip -d /tmp
tar檔案
把/home目錄下包括它的子目錄全部打包,打包檔名為usr.tar。
$ tar cvf usr.tar /home
例2:把/home目錄下包括它的子目錄全部打包,並進行壓縮,檔名為usr.tar.gz 。
$ tar czvf usr.tar.gz /home
例3:把壓縮檔案usr.tar.gz還原並解包。
$ tar xzvf usr.tar.gz
【cat】
cat命令可以檢視整個檔案的內容cat filename
【chown】
chown命令改變檔案擁有者或組chown mahede /data/applogs
【mkdir】
mkdir -p /data/applogs/log
【cd】
1. cd / 進入系統根目錄
2. cd ~ 進入主目錄
【ll和ls】
ll 列表查詢
ls 模組查詢
【git 學習】
【1. 提交專案程式碼流程】
git status
git add 【檔名】
git commit -m “描述”
git push origin 【本地分支】:【遠端分支】
【2. Git的學習】
2.1 git init 檔案生成 …git 便於git
2.2 git clone 【地址】 進入本地檔案進行克隆
2.3 git checkout -b 【分支名】 切換到對應的分支下,建立新的分支並且切換到新的分支下
2.4 git checkout 【分支名】 切換到分支下
2.5 git branch 檢視當前處於哪個分支
2.6 git branch -a 檢視所有分支
2.7 git status 檢視當前分支的程式碼詳情,被改動的程式碼 ,注意一點就是父分支下的子分支和父分支都是相同程式碼結構
2.8 git add 【在git status中被修改的檔案】在當前分支下新增被改動過的程式碼
2.9 git push origin 【本地分支】:【遠端分支】將本地分支push到遠端分支下,包括建立
2.10 git-keygen 生成金鑰,github需要,在查詢時使用cat ~/.ssh/id_rsa_pub命令直接找到公鑰
2.11 git log 檢視log
【前端學習】
- div將HTML分塊
- form表單 action代表form表單資料提交到哪,onsubmit代表點選提交觸發的js事件
- onclick滑鼠點選事件 hello
- formaction經常和submit混合使用
<form action="demo-form.php" method="get">
First name: <input type="text" name="fname" /><br>
Last name: <input type="text" name="lname" /><br>
<button type="submit">提交</button><br>
<button type="submit" formaction="demo-admin.php">提交</button>
</form>
- select標籤和option配合使用
<select>
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
<option value="opel">Opel</option>
<option value="audi">Audi</option>
</select>
- Js獲取html的標籤資料
document.getElementById('id')
document.getElementByName(“id”)
document.getElementByClassName(“name”)
document.getElementsByTagName("span")[0]; //根據標籤name獲取資訊
- div多層獲取精確的資訊使用class
<code class="language-html"><div id="div111">
<div class="divclass"></div>
<div class="divclass"></div>
<div class="divclass"></div>
<div class="divclass"></div>
</div>
<div id="div222">
<div class="divclass"></div>
<div class="divclass"></div>
<div class="divclass"></div>
<div class="divclass"></div>
</div>
</code>
Js:
var oDiv = document.getElementById("div111");
var aDiv = oDiv.getElementsByTagName("div");
alert(aDiv.length);
JQuery:
var oDiv= $("#div111 .divclass");
alert(oDiv.length);
- jquery和div的關係
<div class = "a b"></div>
$(“.a.b”)
- id 使用#aa.attr(“name”)
- input和button的type屬性可以是button、text、submit、reset
【AOP學習】
AOP:使用場景一般做事務處理,日誌處理,許可權控制,使用者請求
- 一個類被註解@Aspect註釋,代表該類是一個切面類
- @component註解:把切面類加入到IOC容器中
- Springboot定義切面的步驟:
1. 定義切面類
@Aspect
@Component
public class Hello{}
2. 定義切點
@Aspect
@Component
public class Hello{
private final static String POINT_CUT=“execution(public * com.ruider.controller .* .*(..))”
}
*注意
public:切點方法的修飾符
第一個*:返回資料型別*代表不限制
com.ruider.controller:類的全限名
第二個*:代表所有類
第三個*:代表當前類的所有方法
():代表方法的引數
.. :代表所有引數,引數不限制
其他方式:execution(* com.ruider.controller..add*(..)||* com.ruider.controller..delete*(..)) 加上或者判斷也行
3. 定義切面方法
@Aspect
@Component
public class Hello{
private final static String POINT_CUT=“execution(public * com.ruider.controller .* .*(..))”
@PointCut(value=POINT_CUT)
public void point(){}
}
4. 定義Advice
@Aspect
@Component
public class Hello{
private final static String POINT_CUT=“execution(public * com.ruider.controller .* .*(..))”
@PointCut(value=POINT_CUT)
public void point(){}
@Before(value=“point()”)
public void before(JoinPoint point){…前置方法…}
*注意
1. Before:代表前置方法(方法執行的操作)
JoinPoint:切點類,代理切面的切點方法,可以根據JoinPoint獲取切點的方法名,引數,所屬類名
@After(value=POINT_CUT)
public void after(JoinPoint point){…後置方法…}
@AfterReturing(value=POINT_CUT,returing=“result”)
public void after(JoinPoint point,Object result){…後置返回方法…}
*注意
1. AfterReturing方法在After方法之後執行,且有返回引數result
@AfterThrowing(value=POINT_CUT)
public void afterThrowing(JoinPoint point){…異常處理方法…}
*注意
AfterThrowing:異常處理方法
@Around(value=POINT_CUT)
public void around(ProceedingJoinPoint jp){
…使用者檢測程式碼…
if(條件滿足){
jp.proceed(jp.getArgs()); //執行方法
}
else{
…不滿足程式碼…
}
}
*注意
1. @Around代表before和afterReturning兩個註解的總和
2. ProceedingJoinPoint執行方法的切點代理
}
【註解學習】
- @component註解:把類加入到IOC容器中
- @Aspect註釋,代表該類是一個切面類
- @Value(value=“${jdbc.username}”)載入properties檔案中的資料
- @PostConstructor註解在某個方法上,表示改bean被Spring呼叫構造器初始化bean的例項之後,立即執行該方法
- @Autowired 按照引用型別查詢並注入欄位
例如:
@Autowired
User user;
*注意
這裡的@Autowired會在Spring IOC中查詢User的bean並注入欄位,如果使用@Autowired和beanName查詢bean注入,必須和@qualifier(“beanName”)配合使用
比如
@Autowired@Qualifier(“user”)
User user;
User user;
- @Resource(“user”)根據bean的name在SpringIOC中查詢bean,實在找不到,再根據bean的屬性查詢
例如
@Resource(“user”)
User user;
*注意
按照name=“user”在SpringIOC查詢也可以是
@Resource
User user; //這樣的話就是預設為user的bean name
- @Configuration註解用於配置類
- @Bean一般是在方法頭部的註解,經常和@Configuration配合使用用於將方法返回的bean放入SpringIOC容器中管理,bean的name預設是方法的名字也可以是
@bean(name=“beaName”)
@Scope(value=“”)
@Description(value=“”)
- @[email protected]處理在Controller中請求發生的異常
比如
@ControllerAdvice
public class GlobalExceptionHandler {
private static final Logger LOGGER = LoggerFactory.getLogger(GlobalExceptionHandler.class);
@ExceptionHandler(value = Exception.class)
public String defaultErrorHandler(HttpServletRequest req, Exception e) {
LOGGER.error("發生異常了", e);
return "forward:/?viewName=resultInfo";
}
}