1. spring的特性是什么?ioc和aop的原理是什么?aop的注解有哪些?
Spring拥有两大特性:IoC和AOP。IoC,英文全称Inversion of Control,意为控制反转。AOP,英文全称Aspect-Oriented Programming,意为面向切面编程。
ioc:控制反转,简单点说,就是创建对象的控制权,被反转到了Spring框架上
aop:面向切面编程 将那些影响了多个类的公共行为封装到一个可重用模块,并将其命名为"Aspect",即切面。所谓"切面", 简单说就是那些与业务无关,却为业务模块所共同调用的逻辑或责任封装起来,便于减少系统的重复代码, 降低模块之间的耦合度,并有利于未来的可操作性和可维护性。
aop注解:
(1)Before:在目标方法被调用之前做增强处理,@Before只需要指定切入点表达式即可
(2)AfterReturning:在目标方法正常完成后做增强,@AfterReturning除了指定切入点表达式后,还可以指定一个返回值形参名returning,代表目标方法的返回值
(3)AfterThrowing:主要用来处理程序中未处理的异常,@AfterThrowing除了指定切入点表达式后,还可以指定一个throwing的返回值形参名,可以通过该形参名
来访问目标方法中所抛出的异常对象
(4)After:在目标方法完成之后做增强,无论目标方法时候成功完成。@After可以指定一个切入点表达式
(5)Around:环绕通知,在目标方法完成前后做增强处理,环绕通知是最重要的通知类型,像事务,日志等都是环绕通知,注意编程中核心是一个ProceedingJoinPoint
2. springboot自动装配原理是什么? springboot 配置文件中常用配置有哪些
SpringBoot启动的时候加载主配置类,开启了自动配置功能@EnableAutoConfiguration
将类路径下META-INF/spring.factories里面配置的所有EnableAutoConfiguration的值加入到了容器中
properties文件和yml文件
3. Springboot项目如何打包、部署、运行?
用idea开发工具右侧的maven projects intall package 然后就会出来我们需要的jar
然后到这个jar的根目录下执行java -jar smallsystem-0.0.1-SNAPSHOT.jar
4. spring是如何控制事务的?
使用注解配置
使用@Transactional注解 需要在配置文件中开启对这个注解的扫描:<tx:annotation-driven transaction-manager=“transactionManager” />,引用了事务管理器
然后就可以使用@Transactional注解,此注解可以使用在类上,也可以使用在方法上,使用在类上即对此类的所有方法都起作用,使用在方法上则表示对单个方法起作用
5. springmvc常用注解及作用?
1、@Controller
在SpringMVC 中,控制器Controller 负责处理由DispatcherServlet 分发的请求,使用@Controller 标记一个类是Controller ,然后使用@RequestMapping 和@RequestParam 等一些注解用以定义URL 请求和Controller 方法之间的映射,这样的Controller 就能被外界访问到。
2、@RequestMapping
RequestMapping是一个用来处理请求地址映射的注解,可用于类或方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径。
3、@Resource和@Autowired
@Resource和@Autowired都是做bean的注入时使用,其实@Resource并不是Spring的注解,它的包是javax.annotation.Resource,需要导入,但是Spring支持该注解的注入。
4、@PathVariable
用于将请求URL中的模板变量映射到功能处理方法的参数上,即取出uri模板中的变量作为参数。如:
7、@ResponseBody
作用:将方法的返回值,以特定的格式写入到response的body区域,进而将数据返回给客户端。
如果返回值是字符串,那么直接将字符串写到客户端;如果是一个对象,会将对象转化为json串,然后写到客户端。
6. springmvc的工作流程是什么?
SpringMVC流程
1、 用户向服务端发送一次请求,这个请求会先到前端控制器DispatcherServlet(也叫中央控制器)。
2、DispatcherServlet接收到请求后会调用HandlerMapping处理器映射器。由此得知,该请求该由哪个Controller来处理(并未调用Controller,只是得知)
3、DispatcherServlet调用HandlerAdapter处理器适配器,告诉处理器适配器应该要去执行哪个Controller
4、HandlerAdapter处理器适配器去执行Controller并得到ModelAndView(数据和视图),并层层返回给DispatcherServlet
5、DispatcherServlet将ModelAndView交给ViewReslover视图解析器解析,然后返回真正的视图。
6、DispatcherServlet将模型数据填充到视图中
7、DispatcherServlet将结果响应给用户
7. mybatis的工作原理是什么? mybatis的缓存的理解?
Mybatis工作原理
1