美文网首页
SpringBoot 入门总结

SpringBoot 入门总结

作者: SunnyGL | 来源:发表于2021-02-26 13:18 被阅读0次
    1. @Bean注解的作用?

    使用@Bean能够管理第三方jar包内的类到容器中。
    当希望将第三方jar包中的类也加入到Spring容器中进行管理时,由于不方便通过修改第三方jar包中的类源码添加@Component或者@Service注解,
    可以使用@Bean注解标记一个方法,在方法中返回需要的类实例。
    在@Configuration中被@Bean标记的方法,会被Spring进行CGLIB代理,从而进行增强。

    2. @Autowired是如何实现自动装载的?

    Spring在创建bean的过程中,最终会调用到populateBean()方法,在populateBean()中判断是否需要属性填充。
    如果需要属性填充则会通过后置处理器AutowiredAnnotationBeanPostProcessor类的postProcessPropertyValues()方法实现填充。
    当自动装配时,从容器中如果发现有多个同类型的属性时,@Autowired注解会先根据类型判断,然后根据@Primary、@Priority注解判断,
    最后根据属性名与beanName是否相等来判断,如果还是不能决定注入哪一个bean时,就会抛出NoUniqueBeanDefinitionException异常。

    3. @RestController做了哪些事情?

    @RestController为@Controller和@ResponseBody的结合。请求到达时,SpringBoot会接管Servlet,
    从所有被@Controller注解的类或方法中找到请求URL对应的方法,调用该方法。添加了@ResponseBody注解的方法,返回的参数会被转为Json字符串。

    4. @Transactional如何实现事务回滚?
    5. Spring AOP实现原理?
    6. Controller、Service、Dao作用?为什么要区分Controller和Service层?

    Controller:
    顾名思义,业务控制,就是控制业务层Service的,它的作用主要是架起了外界与业务层沟通的桥梁,移动端,前端在调用接口访问相关业务时,
    都会通过Controller,由Controller去调相关的业务层代码并把数据返回给移动端和前端。

    Service:
    业务层,所有的内部的业务逻辑都会放在这里处理,比如用户的增删改查,或者发送个验证码或邮件,或者做一个抽奖活动等等等等,都会在Service中进行,
    当然,业务里肯定是离不开数据的支持,因此Dao层是必不可少的。

    Dao:
    数据持久化层,就是和数据库打交道的,通过Dao层直接操作数据库。

    为什么区分Controller和Service层?
    Controller层接收请求,调用Service层处理业务逻辑,最后返回数据。
    Controller是用户请求与业务逻辑之间的桥梁,同时也起着分割用户请求与业务逻辑的作用,使请求无法直接调用业务逻辑,保护后端服务。
    一定要记住,Controller层不应该暴露Service的业务逻辑,而应该直接转发Service的业务处理结果!更不允许直接操作数据库!
    此外,Service对以后的分布式部署有极大的作用。

    7. 一个项目中有哪些基本的bean?

    数据库表对应的 Bean
    前端提交的表单数据 Bean
    返回给前端的数据 Bean
    因业务逻辑实现过程创建的 Bean

    8. Spring,Spring MVC,Spring Boot 三者关系?

    Spring MVC和Spring Boot都属于Spring,Spring MVC是基于Spring的一个MVC框架,而Spring Boot是基于Spring的一套快速开发整合包

    相关文章

      网友评论

          本文标题:SpringBoot 入门总结

          本文链接:https://www.haomeiwen.com/subject/kwpyfltx.html