关于Spring

@EnableAutoConfiguration@SpringbootApplication
@SpringbootApplication=@Configuration + @EnableAutoConfiguration +@ComponentScan

白话Spring–来自知乎
基本原理其实就是通过反射解析类及其类的各种信息,包括构造器、方法及其参数,属性。
然后将其封装成bean定义信息类、constructor信息类、method信息类、property信息类,最终放在一个map里,
也就是所谓的container,池等等,其实就是个map。。汗。。。。当你写好配置文件,
启动项目后,框架会先按照你的配置文件找到那个要scan的包,
然后解析包里面的所有类,
找到所有含有@bean,@service等注解的类,
利用反射解析它们,包括解析构造器,方法,属性等等,然后封装成各种信息类放到一个map里。
每当你需要一个bean的时候,框架就会从container找是不是有这个类的定义啊?如果找到则通过构造器new出来(这就是控制反转,不用你new,框架帮你new),再在这个类找是不是有要注入的属性或者方法,比如标有@autowired的属性,如果有则还是到container找对应的解析类,new出对象,并通过之前解析出来的信息类找到setter方法,然后用该方法注入对象(这就是依赖注入)。如果其中有一个类container里没找到,则抛出异常,比如常见的spring无法找到该类定义,无法wire的异常。还有就是嵌套bean则用了一下递归,container会放到servletcontext里面,每次reQuest从servletcontext找这个container即可,不用多次解析类定义。如果bean的scope是singleton,则会重用这个bean不再重新创建,将这个bean放到一个map里,每次用都先从这个map里面找。如果scope是session,则该bean会放到session里面。仅此而已,没必要花更多精力。建议还是多看看底层的知识。

感觉可以玩一玩:
1.Spring Web Flow
Spring Web Flow建立于Spring MVC框架之上,它为基于流程的会话式
Web应用(可以想一下购物车或者向导功能)提供了支持

想法:
spring中有很多东西,
大致有哪些东西
常用到的东西是哪些,
常用到的东西内部原理如何

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值