day01
一、Maven中如何管理依赖包
答:
第一种:针对所有子项目中一定会用到的依赖包,可以在父项目中的pom.xml文件写入<dependency></dependency>,
而子项目中可以不用写。
第二种:针对并不一定所有子项目中都会用到的依赖包,可以在父项目中的pom.xml文件写入<dependencyManagement></dependencyManagement>,然后在这个标签内部写<dependency></dependency>,同时在需要这个依赖包的子项目的
pom.xml文件中,则可以直接添加对应的<dependency></dependency>,且不用写明版本(这代表这个依赖包的版本直接
交个父项目管理了)。
二、你们的项目为何要分前台和后台两个应用,分析这样做的优点?
答:
首先是安全性角度的考虑,后台管理系统只需公司的管理员使用,而前台系统是给广大用户日常使用的,这两个应用的URL
是不同的,避免了用户通过前台的域名,来访问到后台管理模块功能;
其次,从性能方面考虑,两个应用分开,可以使发送到前后台的不同请求,分散到不同的服务器中取,降低单个服务器的
压力。
最后,前台系统是给用户使用的,需要追求用户体验和美观,而后台则只需要功能正常即可,在界面需求上可以采用不同
的视觉和感官的风格。
三、你们p2p项目是自建资金池么?
答:
不是。因为我们的项目是从2016年下半年开始启动的,而早在当年的3月,就有政策规定,p2p平台不能自建资金池,
因此我们项目采取的是第三方资金托管的方式。
四、什么是乐观锁,它能解决什么问题?
答:
乐观锁:也就是说,它很乐观,每次读取数据的时候,都假设没有其他人正在改数据,所以查询的过程中,并不会上锁,
但在更新数据的时候,则会判断,同一时间,有没有别人在更改这条数据,这体现在sql语句上就是:
update XXX set version = version + 1,.... = xxx where version = xxx
也就是会加上版本或时间戳的字段,只有版本没变更的情况下才会执行本次更新数据的操作
这主要的作用是可以解决丢失更新/脏读 的问题。
五、事务是什么,事务有哪些特性?事务的作用?
1)在数据库中,事务是指一组逻辑操作单元,可以让数据从一种状态转变为另一种状态;
2)数据库中的事务拥有四种特性
原子性Atomicity:事务是一个不可分割的工作单元,其中的操作要么都发生,要么都不发生;
一致性Consistency:事务必须使数据库从一个一致性状态变成另一个一致性状态(数据不被破坏);
隔离性Isolation:一个事务的执行不能被另一个事务所干扰,这个事务内部的操作及使用的数据,对于并发的其它事务来说,应该是隔离的,
并发执行的各事务之间应该是互不干扰的;
持久性Durability:数据库中数据的改变是永久的,不会因为接下来的其它操作或数据库故障而对其有任何影响。
事务的左右:
为确保数据库中数据的一致性,数据的操纵应当是离散且成组的逻辑单元,当它全部成功执行时,数据的一致性可以保持,若有部分失败了,
整个事务的操纵应该被视为失败,则所有操作的数据应该被回退到事务执行前的初始状态下。
六、简述你所知道的一个SpringBoot应用的启动原理?
答:
SpringBoot应用可以在一个主启动类中通过运行main方法或者是直接打成jar包来启动。
在主启动类上会贴一个@SpringBootApplication注解,该注解由@Configuration、@EnableAutoConfiguration、@ComponentScan三个
注解修饰:
@Configuration表示该类的作用是SpringBoot配置文件类;
@EnableAutoConfiguration表示该类启动时,自动加载SpringBoot默认需要自动配置的类,例如WebMvcAutoConfiguration;
@ComponentScan表示程序启动时,自动扫描这个类所在的包及其子包,同时也可以在后面括号内写上指定要扫描的包,通过这个注解,
可以统一将@Service、@Controller、@Component和@Repository这几个注解修饰的类自动注册为Spring Beans;
在SpringBoot项目中内嵌了web服务器,例如tomcat,我们通过主启动类启动应用时,会根据@SpringBootApplication注解的配置初始化
容器,并将应用运行在内嵌的web服务器上。
七、简述@Configuration、@ComponentScan和@Bean注解各自的作用?
答:
@Configuration:贴上该注解的类会Spring当成配置对象解析,可以在给配置对象中创建bean且注入到容器中(相当于之前Spring项目中
applicationContext.xml中配置的bean);
@ComponentScan:该注解一般和@Configuration注解配合使用,默认可以扫描贴上该注解的类所在的包及其子包,如果该注解后面的
括号内写了指定的包,则只扫描该包的路径;
@Bean:这个注解也配合@Configuration使用,把贴上该注解的方法返回的类注入到Spring容器中。
八、阐述@ConfigurationProperties的作用?
答:
该注解起到参数绑定的作用,可以把配置文件的配置信息绑定到Properties对象上,可控制具体哪些前缀的配置信息需要绑定。
九、二进制的运算:
0110和1010对应的十进制:
6和10
0101|1010:
1111
0110&1010:
0010
浙公网安备 33010602011771号