Java学习笔记202009

9.15

1.什么是数据库主外键和索引?


2.springBoot中Mapper里
@Autowired
XxxService xxxService;
这样写的spring容器是找service还是找serviceImpl类?
serviceImpl类上会有注解@Service(value=“xxxSevice”)这个有用吗?

@Autowired先按类型找,然后再按id为属性名去找
他会帮你按xxxService的类型去容器中找唯一bean对象
容器没有该类型的对象:报错
容器中有该类型的唯一bean对象,就将该唯一bean对象赋值给该属性
容器中有多个【两个及以上】该类型的唯一bean对象,
它会再根据该属性名去容器中找,
看看容器中的哪个bean对象的id值和该属性名一致,
如果有,就将容器中该对象赋值给该属性,如果没有报错。
然后通过多态的向上转型就赋值成功。等价于之前手动赋值
XxxService xxxService = new XxxServiceImpl();


3.@Autowired和@resource的区别?
@Autowired:属于Spring
当有多个service实现类时,可通过@qualifier指定service的name
@resource:属于J2EE


9.22

@notNull:不能为空
@notEmpty :作用域集合
@notBlank:作用域String字符串


@Validated:org.springframework.validation.annotation
@Valid:javax.validation

@Validated:用在方法入参上无法单独提供嵌套验证功能。不能用在成员属性(字段)上,也无法提示框架进行嵌套验证。能配合嵌套验证注解@Valid进行嵌套验证。
@Valid:用在方法入参上无法单独提供嵌套验证功能。能够用在成员属性(字段)上,提示验证框架进行嵌套验证。能配合嵌套验证注解@Valid进行嵌套验证。


DataSourceinitalizer:
a).schema-.sql
b).data-
.sql
当datasource准备好以后会加载schema.sql/chema-all.sql
也可以自定义在classpath路径下的application.yml中配置指定schema List.


4.@Component和@Bean对比
@Component注解表明一个类会作为组件类,并告知Spring要为这个类创建bean。
@Bean注解告诉Spring这个方法将会返回一个对象,这个对象要注册为Spring应用上下文中的bean。通常方法体中包含了最终产生bean实例的逻辑。

相同点:
两者的结果都是为spring容器注册Bean.
不同点:
@Component 通常是通过类路径扫描来自动侦测以及自动装配到Spring容器中。
@Bean 注解通常是我们在标有该注解的方法中定义产生这个bean的逻辑。


5.application.properties和application.yml(或者.yaml)同时存在的优先顺序
application.properties:
application.yml:全称YAML Ain’t Markup language,以数据为中心,比json/xml更适合做配置文件
k:(空格)v:表示一对键值对(空格必须有)
以空格的缩进来控制层级关系;只要左对齐的一列数据,都是同一个层级的
属性和值也是大小写敏感的
v的值的写法:
a).""双引号不会转义;’'单引号会转义特殊 字符


6.entity/domain/pojo/bean的区别
entity:数据库映射表
domain:添加了自己属性的entity
pojo:普通Java对象
bean:拥有get/set方法的pojo


9.23

1.maven命令package和install的区别?
package:
a). 将项目打包(jar/war),将打包结果放到项目下的 target 目录下
install:
a). 将项目打包(jar/war),将打包结果放到项目下的 target 目录下
b). 同时将上述打包结果放到本地仓库的相应目录中,供其他项目或模块引用

2.MySQL导出已建表的建表语句
show create table TABLENAME;

9.25

1.sql语句中单引号和双引号的区别?


2.-可以注释掉‘(单引号)?
sql语句中 – 之后的语句将作为注释,不起作用。


3.什么是sql注入,如何防范?
使用PreparedStatement进行预编译。


4.sql语句的通配符
a).%可代表多位.
eg: select * from where name=‘https%’;
b)._可代表1位.
eg:select * from where name = ‘_oogle’;


5.mybatis的mapper.xml文件中 #{} ${}的区别?
https://blog.csdn.net/kaixuansui/article/details/88637311?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.channel_param&depth_1-utm_source=distribut


6.RequestBody/FormBody/MultipartBody
https://www.jianshu.com/p/1133389c1f75


7.PathVariable/RequestParam/RequestBody
https://www.cnblogs.com/anywherego/p/9600871.html


8.myBatis的@Param注解作用
a).不使用@Param注解,mapper.java方法最多支持一个参数,可以是实体。使用@Param注解可以传递多个参数
b).可以使用别名


9.Map、model、ModelAndView的区别


9.27

1.ps -aux和ps -ef的区别?
只是风格不一样
ps -ef|grep xxx 查找xxx的进程


2.sql的4中链接查询?
1.inner join(内连接查询)
2.left join/left outer join(左外联查询)
3.right join/right outer join(右外联查询)
4.full join/full outer join (完全外连接查询)


3.sql语句中 select count(1) 和select count()的区别?
1、 一般情况下,Select Count (
)和Select Count(1)两者返回结果是一样的
2、 假如表沒有主键(Primary key), 那么count(1)比count()快,
3、 如果有主键的話,那主键作为count的条件时候count(主键)最快
4、 如果你的表只有一个字段的话那count(
)就是最快的
5、count(*) 跟 count(1) 的结果一样,都包括对NULL的统计,而count(column) 是不包括NULL的统计


9.28

1.centos常用的命令
1).查看当前进程:ps -ef|grep nginx /ps -aux|gerp java
2).杀死指定进程:kill -9 [进程号]
3).查看开放的端口号:firewall-cmd --list-port
4).查看防火墙状态 firewall-cmd --state
5).开启/关闭防火墙:systemctl start/stop firewalld.service
6).开机启动/关闭防火墙:systemctl enable/disable firewalld.service
7).重启防火墙:systemctl restart firewalld.service
8).设置开放的端口号:
firewall-cmd --add-serveice=http --permanent
firewall-cmd --add-port=6060/tcp --permanent
firewall-cmd --remove-port=6060/tcp --permanent
9).重新加载:firewall-cmd --reload
10).noup和&的区别
https://blog.csdn.net/weixin_37490221/article/details/81539341?utm_medium=distribute.pc_relevant.none-task-blog-title-2&spm=1001.2101.3001.4242


2.nginx常用的命令
前提:必须进入nginx目录 /usr/local/webserver/nginx/sbin/
1).查看nginx版本号:./nginx -v
2).启动nginx:./nginx
3).关闭nginx:./nginx -s stop
4).重新加载nginx:./nginx -s reload


3.nginx配置文件nginx.conf
1).全局块:
2).events块:
3).http块:


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值