这里写自定义目录标题
- 面试问题总结
- 一 SpringBoot常用标签
- 1. 启动注解 `@SpringBootApplication`
- 2. Controller相关注解
- 3. 注入Bean相关
- 4. 导入配置文件
- 5. 事务注解
- 六. 全局异常处理
- 二 MVC设计模型与三层架构描述
- 三 事务放在Dao还是Service
- 四 MyBatis传递参数方法
- 一 普通类型参数
- 二 多个普通类型参数
- 三 @Param注解命名参数
- 四 Map对象作为参数
- 五 JavaBean数据类型
- 六 模糊查询
- 五 Linux查询日志,切换用户
- 一 查看日志
- 二 切换用户
- 六 如何构建开发环境
- 七 权限,如何不同用户看到的东西不同
- 八 如何弹出表单详情
- 九 VUE常用标签
- 十 JQuery实现三个表单元素的数据连在一起发送给后端
- 十一 JQuery选择器有哪些
- 十二 VUE实现动态追加class属性
- 十三 VUE的V-FOR标签的key的作用
- 十四 MyBatis标签
面试问题总结 一 SpringBoot常用标签 1. 启动注解
@SpringBootApplication
@SpringBootApplication 是一个复合注解
主要注解:
@SpringBootConfiguration主要用于加载配置文件
@EnableAutoConfiguration主要用于开启自动配置功能
@ComponentScan主要用于组件扫描和自动装配
2. Controller相关注解
@Controller
控制器,标明该类是一个处理请求的控制器,主要用于处理http请求@RestController
复合注解:
@ResponseBody + @Controller
@GetMapping
用在Controller的方法中,标明该接口只处理Get请求@PostMapping
用在Controller的方法中,标明该接口只处理Post请求@RequestMapping
用于Controller的方法中,标明该接口的请求地址,可以指定get,post,put,delete
四种请求方式@RequestParam
用于Controller的参数中,用于接收普通的参数(非对象)@RequestBody
用于Controller的参数中,用于接收POST请求体中的JSON,转换为参数对象@PathVariable
用于Controller的参数中,用于接收URL中RESTFUL类型的参数
比如: http://URL/getUser/12345
@RequestMapping("/getUser/{uid}")
public String getUser(@PathVariable("uid")Integer id) {
System.out.println("id:"+id);
return "user";
}
@ResponseBody
将Controller返回值转换成JSON的格式传给前端
@Repository
用于Dao层,标明这是访问数据库的持久层@Service
用于业务逻辑层,其内部方法 包含具体的业务逻辑@Entity
用于实体类中,标明与数据库中的表对应
@Id、@Column注解用于标注实体类中的字段
@Scope
作用在类上和方法,标明该bean的作用域@Bean
在配置类中使用,即类上需要加上@Configuration注解
(如果你想要将第三方库中的组件
装配到你的应用中,在这种情况下,是没有办法在它的类上添加@Component注解的,因此就不能使用自动化装配的方案了,但是我们可以使用@Bean)@Autowired
作用在构造函数、方法、方法参数、类字段以及注解,主要用于Bean的注入@Component
把普通pojo实例化到spring容器中,相当于配置文件中
@PropertySource
作用是引入properties文件
@PropertySource(value = https://www.it610.com/article/{"classpath : xxxx/xxx.properties","classpath : xxxx.properties"})
@ImportResource
作用是导入xml配置文件,可以相对路径也可以绝对路径
@ImportSource(locations={"classpath : xxxx.xml" , "classpath : yyyy.xml"})
@ImportSource(locations= {"file : d:/hellxz/application.xml" , "file : d:/hellxz/dubbo.xml"})
@Import
作用是导入额外的配置信息
@Transactional
在Spring中,事务有两种实现方式,分别是编程式事务管理和声明式事务管理两种方式
-
编程式事务管理
: 编程式事务管理使用TransactionTemplate
或者直接使用底层的PlatformTransactionManager。对于编程式事务管理,spring推荐使用TransactionTemplate。
-
声明式事务管理
: 建立在AOP之上的。其本质是对方法前后进行拦截,然后在目标方法开始之前创建或者加入一个事务
,在执行完目标方法之后根据执行情况提交或者回滚事务,通过@Transactional就可以进行事务操作
,更快捷而且简单。推荐使用
@ControllerAdvice
异常集中处理,更好的使业务逻辑与异常处理剥离开,可以指定某一个类为异常处理类
,并包含各种类型的异常处理,作用在类上
// 定义这个类就是用来处理异常的
@ControllerAdvice
public class GlobalExceptionHandler {
}
@ExceptionHandler
统一处理某一类异常
,从而能够减少代码重复率和复杂度,并生成对应的映射关系,作用在方法上
@ControllerAdvice
public class GlobalExceptionHandler {
// 标明这个方法用来处理哪一种异常
@ExceptionHandler(Exception.class)
@ResponseBody
String handleException(){
return "Exception Deal!";
}
}
二 MVC设计模型与三层架构描述
服务器端三层架构:
表现层 SpringMVC
业务层 Spring
持久层 Mybatis
MVC设计模式:
M -> Model 模型,也就是javaBean,操作的数据或信息
V -> View视图,jsp,html等,用于提供给用户交互
C -> Controller控制器,Servlet,根据View的指令选取Model层的数据,传给View
三 事务放在Dao还是Service 事务要一般都
放在Service层
,Controller如果有需要也可以加,但是不会放在Dao层,因为一个业务可能要处理多次数据库,如果放在Dao层,则第一次操作数据库成功第二次失败的时候就无法完全回滚.四 MyBatis传递参数方法 一 普通类型参数
直接在Mapping文件中使用#{name}
public User queryUserById(Integer id);
select id,last_name lastName,sex from t_user where id = #{id}
二 多个普通类型参数
public List queryUserByNameAndSex(String name, Integer sex);
select id,last_name lastName,sex from t_user where last_name = #{param1} and sex = #{param2}
三 @Param注解命名参数
public List queryUserByNameAndSex(@Param("name") String name,
@Param("sex") Integer sex);
select id,last_name lastName,sex from t_user where last_name = #{name} and sex = #{sex}
四 Map对象作为参数
public List queryUserByMap(Map param);
select id,last_name lastName,sex from t_user where last_name = #{name} and sex = #{sex}
五 JavaBean数据类型
public List queryUserByUser(User user);
select id,last_name lastName,sex from t_user where last_name = #{lastName} and sex = #{sex}
六 模糊查询
public List queryUsersByNameLike(String lastName);
select id,last_name lastName,sex from t_user where last_name like concat('%',#{lastName},'%')
五 Linux查询日志,切换用户 一 查看日志
tail -f XXX.log
(最常用)
实时
查看日志 tail -n 10 XXX.log 查看后几行cat -n XXX.log |grep "关键字"
(常用)
根据关键字查看日志hard -n 10 XXX.log
查看日志开头10行vim之后 /关键字
查看- more/less如果显示太多不方便
cat -n test.log |grep "debug" |more分页打印,(空格键翻页)
二 切换用户
su 用户名
或
sudo su 用户名
六 如何构建开发环境 给你一个GIT地址,如何搭建开发环境,需要向老员工要什么数据?
- 公司的maven私服地址
- Mysql的路径和用户信息
- Gitlab项目地址
- Redis的地址等其他
v-text可以与{{}}代替(不识别html标签)
v-html页面添加html元素
v-bind数据绑定,可以使用 : 代替
v-on事件绑定,可以使用@代替
v-model表单元素和数据的双向绑定
v-if v-else判断
v-show根据boolean值判断显示不显示
v-for循环遍历(一定要设置key)
十 JQuery实现三个表单元素的数据连在一起发送给后端 有三个输入框name分别为a1,a2,a3如何将数据逗号隔开传到后台?
使用属性选择器匹配name属性以a开头的输入框
var data;
$("input[name^=a]').each(function(){
data=https://www.it610.com/article/data+$(this).val()
})
十一 JQuery选择器有哪些
id选择器
类选择器
元素选择器
属性选择器
后代选择器
子选择器
同辈选择器
等其他
参考博客
https://www.php.cn/js-tutorial-378052.html
十二 VUE实现动态追加class属性
动态添加类名对象的形式(文字的颜色)
【面试问题总结(二)】对象的形式(文字的颜色)
三元表示式(文字的颜色)
数组的形式(文字的颜色)
数组中使用对象(文字的颜色)
通过方法设置class类名
.p1 {
color: red;
font-size: 30px;
}
.p {
color: blue
}
十三 VUE的V-FOR标签的key的作用 十四 MyBatis标签
- select
- insert
- delete
- update
- if
- foreach
- resultMap
- Collection
- id
- sql
- trim
- accociation
等