- 你对Spring的理解?Spring是一个开源的轻量级框架,为解决软件开发的复杂性而生,基于核心的IoC和AOP思想实现项目开发的模块化,贯穿项目的表现层、逻辑层及持久层,减低项目模块之间的耦合度,提高复用率。
- 你对ioc的理解?项目中哪里用到ioc了?解耦,控制反转
ioc给设计好对象交给容器管理,IoC容器具有依赖注入的功能,它可以创建对象,负责实例化、定位、配置应用程序中的对象及建立这些对象间的依赖关系。 通常来说,在传统的Java SE程序设计中,我们直接在对象内部通过new进行创建对象,是程序主动去创建依赖对象;而IoC是有专门一个容器来创建这些对象,即由IoC容器来控制对象的创建。
正常情况下我们使用一个对象时都是需要new Object() 的。而ioc是把需要使用的对象提前创建好,放到spring的容器里面。需要使用的时候直接使用就行,而且可以设置单例或多例,非常灵活。
我们在service层想调用另外一个service的方法,不需要去new了,直接把它交给spring管理,然后用注解的方式引入就能使用。 - 你对aop的理解?项目中哪里用到aop了?AOP:面向切面编程。
开闭原则
AOP可以用来对业务逻辑的各个部分进行隔离,降低业务逻辑各部分之间的耦合度,提高程序的可重用性,同时提高开发效率。在运行期间,Spring通过动态代理技术动态生成代理对象,代理对象方法执行时进行增强功能的介入,再去调用目标对象的方法,从而完成功能的增强。AOP可以实现如性能统计、安全控制、事务处理、日志记录等功能。
比方说我现在要弄一个日志,记录某些个接口调用的方法时间。使用Aop我可以在这个接口前插入一段代码去记录开始时间,在这个接口后面去插入一段代码记录结束时间。 - Spring中的bean是单例的吗? scpoe="prototype"确保在应用程序范围内仅创建一个 bean 实例,这减少了内存消耗和对象创建的开销,提高了系统的性能和资源利用率
解决Bean的多例问题 - 如何制作一个切面类,代码具体怎么写的?
@Aspect
@Component
public class LoggingAspect {
// 切点定义,匹配所有以"execute"开头的方法
@Pointcut("execution(* com.example.service.*.execute*(..))")
public void executeMethods() {
}
// 前置通知,在目标方法执行前打印日志
@Before("executeMethods()")
public void beforeExecute(JoinPoint joinPoint) {
System.out.println("Before method: " + joinPoint.getSignature().getName());
}
// 后置通知,在目标方法执行后打印日志
@After("executeMethods()")
public void afterExecute(JoinPoint joinPoint) {
System.out.println("After method: " + joinPoint.getSignature().getName());
}
// 也可以定义其他类型的通知,如环绕通知(@Around)、异常通知(@AfterThrowing)等
} - aop的底层原理? AOP 底层使用动态代理。
(1)第一种 有接口情况,使用 JDK 动态代理。
(2)第二种 没有接口情况,使用 cglib动态代理。 - 在同一个类中,方法嵌套调用,切面切不到被调用的方法,如何解决?☐ @EnableAspectJAutoProxy(exposeProxy = true)
☐ AnswerService answerService = (AnswerService) AopContext.currentProxy();
☐ rows += answerService.save(answer); - ioc源码看过吗?如果看过,大概介绍一下
- Spring创建bean的方法?
- BeanFactory和FactoryBean的区别?
- 常用的FactoryBean的实现类有哪些?
- Aop中用到什么设计模式了?
- 利用Aop进行开发日志功能,是怎么实现的,具体讲讲?
- Spring中依赖注入的方式有哪些?
- BeanFactory和ApplicationContext的区别?
- Spring bean的作用域?
- Spring Bean的生命周期?生命周期中各种Aware的作用?
- @PostConstruct注解的作用?
- Spring是如何解决Bean的循环依赖的?
- jdk动态代理和cglib的区别?
- @Autowired和@Reources的区别?
- Spring事务的传播行为?
- Spring默认的事务传播行为?
- 在同一个类中,Spring事务传播行为失效的问题?
- 程序中哪里用到事务了?怎么用的?
- Spring事务在什么情况下会失效?
- SpringMVC工作流程?
- SpringMVC的常用注解有哪些?
- 你知道的SpringMVC的注解?
- 你对restful的理解?
- @RequestBody 和 @ResponseBody 的区别?
- @RestController和@Controller的区别?
- SpringMVC和SpringBoot的区别?
- SpringBoot的自动配置原理?
- SpringBoot的启动过程?
- 自己写过starter吗?
- SpringBoot的常用注解有哪些?
- SpringBoot的配置文件都有哪些形式?
- SpringBoot如何读取配置文件中的配置?
- SpringBoot的配置类具体怎么写的?
- SpringBoot如何解决跨域问题的?
- springboot设置不同的开发环境的配置是什么?
- springboot中配置数据源用什么方式?
- springboot配置文件的形式有哪些?
- springboot开发环境有没有自己搭过?怎么搭的?
- springboot中日志框架是什么?
- 有没有在springboot项目中做过单元测试?
- SpringBoot配置多数据源做过吗?
- SpringBoot的启动类放在哪里?
- SpringMVC中的拦截器和Spring中的Aop有什么区别?
- @Transactional注解中都有哪些属性,分别有什么作用?
- SpringCloud组件有哪些?你对Nacos的理解?
- 微服务汇总日志,要怎么做?
- SpringBoot启动突然中断,无任何报错信息,你如何排查错误?
- 微服务的优势?
- SSO的流程?
1. Spring
原创
©著作权归作者所有:来自51CTO博客作者青衫啦啦啦的原创作品,请联系作者获取转载授权,否则将追究法律责任
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
1.顺序表的实现——C语言
顺序表各种操作的代码实现
顺序表 冒泡排序 算法 随机数 -
1.链式存储的线性表——C语言实现
本文是作者学习数据结构过程中在单链表基本运算代码实现时遇到问题并解决问题后的结果
单链表 基本运算 存储结构 代码实现 -
Spring Data JPA开发手册——1.介绍
《Spring Data JPA开发手册——1.介绍》作者:chszs,转载需注明。博客
spring data jpa spring data jpa spring data commons JPA -
Spring Cloud 学习1. 服务治理Spring Cloud Eureka
本系列学习内容来自《Spring Cloud微服务实战》Srping Cloud Eureka是Spring Cloud netflix微服务套件中的
spring cloud eureka 微服务 spring 客户端 -
1. A + B
输入两个整数,求这两个整数的和是多少。输入两个整数A,B,用空格隔开。输出一个整数,表示这两个数的和。
算法 c++ ide ios 输出格式 -
Java堆内组成图
1.Java 容器都有哪些?Java 容器分为 Collection 和 Map 两大类,其下又有很多子类,如下所示:Collection List A
Java堆内组成图 java 开发语言 List 线程安全