Spring中的一些知识点

FactoryBean 和 BeanFactory的区别

  • FactoryBean可简化Bean的实例化过程:
    1.通过FactoryBean封装Bean的实例化过程.
    2.将FactoryBean装配到Spring容器里.
    3.将FactoryBean注入给其他的Bean.
    4.该Bean得到的是FactoryBean所管理的对象实例.

Java-RestController注解浅析

1.@RestController为开发提供了方便☺,在提供json接口时需要的配置操作再也不需要自己配置了。
2.@RestController注解相当于@ResponseBody和@Controller的结合

@Controller
@ResponseBody
public class MyController { }

@RestController
public class MyRestController { }

@ResponseBody与@Controller
上面说到@RestController注解相当于@ResponseBody和@Controller的结合,那么在这里就大致介绍一下这两个注解的作用;

@ResponseBody
在实际操作中我们只需要在Controller层使用@RequestBody注解就可以将对象进行反序列化;而若需要对Controller的方法进行序列化,我们需要在返回值上使用@ResponseBody;也可以将@ResponseBody注解在Controller类上,这样可以将这个类中所有的方法序列化。

@Controller
@Controller是一种特殊化的@Component类,在实际操作中@Controller用来表示Spring某个类是否可以接受HTTP请求,她通常与@ResponseBody绑定使用。

@Component
1.把普通POJO(Plain Ordinary Java Object简单的java对象)实例化到spring容器中,相当于配置文件中的
2.泛指组件,当组件不好归类的时候,可以使用@Component注解进行标注

SpringBoot启动类注解

@SpringBootApplication

- @SpringBootConfifiguration:组合了 @Confifiguration 注解,实现配置文件的功能。
- @EnableAutoConfifiguration:打开自动配置的功能,也可以关闭某个自动配置的选项。
- @SpringBootApplication(exclude = { DataSourceAutoConfifiguration.class })
- @ComponentScan:Spring组件扫描

SpringBoot启动方式?

1.main方式

2.命令行java -jar的方式

3.mvn/gradle

SpringBoot自动配置原理

@EnableAutoConfifiguration (开启自动配置) 该注解引入了AutoConfifigurationImportSelector,该类中

的方法会扫描所有存在META-INF/spring.factories的jar包。

开启SpringBoot特性的几种方式

1.集成spring-boot-starter-parent项目

2.导入spring-bootdependencies项目依赖

SpringBoot读取配置相关注解

  • @PropertySource

  • @Value

  • @Environment

  • @ConfifigurationProperties

  • ## IOC

  • Spring两大特性:IOC 和AOP

    • 什么是控制?控制了什么?
      • 对象的创建,对象里的属性赋值都交给Spring来做,这就是控制的思想
      • 我们要做的仅仅是定义类,以及定义哪些属性需要Spring来赋值(比如某个属性上加@Autowired)
      • 反转的思想就是说,一种对象控制权的转移

    Spring事务什么时候会失效?

    • Spring事务的原理是AOP,进行了切面增强,那么失效的根本原因是这个AOP不起作用了

      • 1.发生自调用,类里面使用this调用奔雷的方法(this通常省略),此时这个this对象不是代理类,⽽是 UserService对象本身! 解决⽅法很简单,让那个this变成UserService的代理类即可!

      • 2、⽅法不是public的:@Transactional 只能⽤于 public 的⽅法上,否则事务不会失效,如果要⽤在

        ⾮ public ⽅法上,可以开启 AspectJ 代理模式。

      • 3.数据库不支持事务

      • 没有被spring管理

      • 异常被吃掉,事务不会回滚(或者抛出的异常没有被定义,默认为RuntimeException)

Spring中的Bean创建的生命周期有哪些步骤

  • 推断构造方法
  • 实例化
  • 填充属性(依赖注入)
  • 处理Aware回调
  • 初始化,处理InitialzingBean接口
  • 初始化后,进行AOP
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值