-
请问:Spring是哪家公司开发的?
- 答:Rod Johnson创建的一个开源框架,现属于VMware公司
-
请问:IOC和DI的全称分别是什么?是什么意思?
- 答:IOC的全称是控制反转: 将实例化过程和实例化生命周期都交给spring容器管理,解决手动new时,侵略性和耦合度双高的问题。
- 答:DI的全程是依赖注入: 在IOC产生实例的同时注入属性。
-
请问:IOC和DI有什么关系?
- 答:DI可以看作是IOC的一种实现方式,IOC是一种思想,而DI是一种设计模式是一种实现IOC的模式。
-
请问:Spring5版本支持JDK7吗?
- 答:不支持。
-
请问:如何知道spring的那些xml文件是否可以随意放置和随意命名?
- 答:用ClassPathXmlApplicationContext()的话按照规范需要放到rescoures中创建一个spring包。
- 答:用FileSystemXmlApplicationContext()需要放在项目下。
- 答:可随意命名。
-
请问:中的id和class分别是配置什么的?
- 答:id 配置唯一标识。
- 答:class 实体类的类全名
-
请问:junit中可否同时实例化多个application.xml文件?怎么操作?
- 答:可以多个实例化,在ClassPathXmlApplicationContext()中用"",分割填写多个xml文件路径。
- 答:也可以使用引入另一个核心配置文件
-
请问:什么情况下建议使用工厂模式来创建一个bean?
- 答:耦合度过高
-
请问:bean的默认加载机制是延迟还是非延迟?
- 答:非延迟
-
请问:bean中的scope有哪几个值,有什么区别,默认是什么?
- 答:singleton和prototype
- 答:singleton是单例模式,prototype是多例模式
- 答:单例模式每次在容器中获取到的都是同一个bean,而多例模式每次从容器中获取的都是新new出来的bean.
- 答:默认是单例模式
-
请问:bean中的scope为非单例的时候可否非延迟加载?
- 答:不是单例的时候不可以非延迟加载。
-
请问:bean的生命周期是怎样的?
- 答:初始化方法,在创建这个类之后,使用这个类之前调用。
- 答:销毁方法,在销毁这个类之前调用。
-
请问:常量注入的时候需要使用什么标签?
- 答:用标签。
-
请问:构造器注入方式的使用前提是什么?
- 答:构造器中写入角标对应的值
-
请问:注入的时候,什么时候使用ref,什么时候使用value?
- 答:当属性的值是一个对象的时候就要使用ref引用这个对象ID标识符。
- 答:如果值是一个字符串,直接写value即可
-
请问:spring集合的注入都支持哪几种?
- 答:Array,List,Set,Map,Properties
-
请问:注解驱动和注解扫描器分别是什么意思?
- 答:注解驱动相当于定义了一套基于MVC实现的类
- 答:注解扫描器就是扫描指定包下或类下的注解,如果没有配置注解扫描器,注解不会生效
-
请问:@Autowired和@Resource有什么区别?
- 答:@Autowired是spring提供的,先按照class匹配,如果匹配失败在按照id匹配。
- 答:@Resource是jdk提供的,先按照id匹配,如果匹配失败在按照class匹配。
- 答:这俩注解的效果是一样的,不过@Autowired是自动注入
-
请问:注解扫描器支持扫描哪几种注解,分别都是标注在什么上的?
- 答:@Component:被扫描时可以自动配置对应的bean,以下三个注解都自带这个注解。
- 答:@Controller:建议配置在控制器类上
- 答:@Controller:建议配置在业务类上。
- 答:@Repository:建议配置在数据类上。
-
请问:动态代理是什么意思,什么时候可以使用?
- 答:就是别人帮你完成这些事情。
- 答:某些重复性的事件太多的时候可以使用
-
请问:JDK动态代理和CGLIB动态代理有什么区别?
- 答:JDK动态代理使用的条件需要是接口的实现类。
- 答:CGLIB动态代理只要不是final类就可以使用。
-
请问:分别解释一下Aspect/JoinPoint/Pointcut/Advice?
- 答:Aspect:切面,多个通知和多个切入点组合。
- 答:JoinPoint:连接点,可以被拦截到的点。
- 答:Pointcut:切入点,真正被拦截到的点。
- 答:Advice:连接点调用前后,爆发异常后和return后所进行的处理。
-
请问:想定义一个切面类必须要配合哪个注解?
- 答:@Aspect
- 答:@Component
-
请问:@Pointcut标注的方法必须是空方法吗?
- 答:必须是空方法
-
请问:"execution(* com.joe.service...(..))"代表什么意思?
- 答:com包下,joe包下,service包下,任意类,任意方法,任意参数
-
请问:前通知、后通知、返回后通知、异常通知都分别是什么时机触发的?
- 答:前通知:在切入点前通知
- 答:后通知:在切入点后通知
- 答:返回后通知:业务方法return之后通知
- 答:异常通知:在业务方法发生异常后通知
-
请问:如何将MAVEN中的父工程打包。
- 答:执行package
-
请问:分层开发的好处是什么?
- 答:解耦,开发效率高,互不干扰