美团基础架构研发实习


时间: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

【前端学习】

  1. div将HTML分块
  2. form表单 action代表form表单数据提交到哪,onsubmit代表点击提交触发的js事件
  3. onclick鼠标点击事件 hello
  4. 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>
  1. select标签和option配合使用
<select>
  <option value="volvo">Volvo</option>
  <option value="saab">Saab</option>
  <option value="opel">Opel</option>
  <option value="audi">Audi</option>
</select>
  1. Js获取html的标签数据
document.getElementById('id')
document.getElementByName(“id”)
document.getElementByClassName(“name”)
document.getElementsByTagName("span")[0];  //根据标签name获取信息
  1. 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);
  1. jquery和div的关系
<div class = "a b"></div>
$(.a.b”)
  1. id 使用#aa.attr(“name”)
  2. input和button的type属性可以是button、text、submit、reset

【AOP学习】

AOP:使用场景一般做事务处理,日志处理,权限控制,用户请求

  1. 一个类被注解@Aspect注释,代表该类是一个切面类
  2. @component注解:把切面类加入到IOC容器中
  3. 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执行方法的切点代理
}

【注解学习】

  1. @component注解:把类加入到IOC容器中
  2. @Aspect注释,代表该类是一个切面类
  3. @Value(value=“${jdbc.username}”)加载properties文件中的数据
  4. @PostConstructor注解在某个方法上,表示改bean被Spring调用构造器初始化bean的实例之后,立即执行该方法
  5. @Autowired 按照引用类型查找并注入字段
    例如:
@Autowired
User user;
*注意 
这里的@Autowired会在Spring IOC中查找User的bean并注入字段,如果使用@Autowired和beanName查找bean注入,必须和@qualifier(“beanName”)配合使用
比如
@Autowired@Qualifier(“user”)
User user;
User user;
  1. @Resource(“user”)根据bean的name在SpringIOC中查找bean,实在找不到,再根据bean的属性查找
    例如
@Resource(“user”)
User user;
*注意
按照name=“user”在SpringIOC查找也可以是
@Resource
User user;      //这样的话就是默认为user的bean name
  1. @Configuration注解用于配置类
  2. @Bean一般是在方法头部的注解,经常和@Configuration配合使用用于将方法返回的bean放入SpringIOC容器中管理,bean的name默认是方法的名字也可以是
@bean(name=“beaName”)
@Scope(value=“”)
@Description(value=“”)
  1. @ControllerAdvice+@ExceptionHandle处理在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";
    }
}

猜你喜欢

转载自blog.csdn.net/qq_40910541/article/details/83314138
今日推荐