springIOC

强调!!!以下只是我个人总结,如有错误的地方请文明指出微笑,如有其他看法请耐心讨论微笑,如有看不懂可以参考其他有关博客微笑,最后如有想喷的出门左转不谢。微笑    

1、控制反转:依赖对象的获得被反转了。
2、许多程序都是有两个以上的类通过彼此合作来实现业务逻辑的,这使得每个对象都要引用它所依赖的对象的引用,如果这个获取对象的过程要靠自身实现(一个类中引用了另一个类),那么会导致代码的高度耦合并且难以测试。
3、依赖控制反转的方式有很多,其中spring中的IOC容器是实现这个模式的载体。他可以在对象生成或初始化时直接将数据注入到对象中,也可以通过将对象的引用注入到对象数据域中的方式来注入对方法调用的依赖。这种依赖注入是可以递归的,对象被逐层注入。
4、spring IOC容器中有两个主要的容器系列:BeanFactory,用来实现容器的基本功能;ApplicationContext,应用上下文,在简单容器的基础上增加了许多面向框架的新特性。
5、BeanDefinition:是spring在提供基本的IOC容器的接口定义和实现的基础上,由spring定义的BeanDefinition用来管理spring中各种对象以及他们之间的依赖关系。对于IOC他是依赖反转模式中管理对象依赖关系的数据抽象,也是容器实现依赖反转功能的核心数据结构。
6、BeanFactory接口<——HierarchicalBeanFactory接口<——ConfigurableBeanFactory接口:BeanFactory接口定义了基本的IOC容器的规范,包括getBean()(从容器中获取Bean);HierarchicalBeanFactory接口继承了BeanFactory接口后,增加了getParentBeanFactory()(使得BeanFactory具备了双亲IOC容器的管理功能);ConfigurableBeanFactory接口继承了HierarchicalBeanFactory接口后增加了定义对BeanFactory的配置功能,例如setParentBeanFactory()(设置双亲IOC容器)、addBeanPostProcessor()(配置Bean后置处理器)。
7、BeanFactory接口<——ListableBeanFactory接口/HierarchicalBeanFactory接口<——ApplicationContext接口<——ConfigurableApplicationContext接口/WebApplicationContext接口
在ListableBeanFactory接口中细化了许多BeanFactory接口的功能,比如定义了getBeanDefinitionName()接口方法。ApplicationContext接口通过继承了MessageSource、ResourceLoader、ApplicationEventPublisher接口。
8、BeanFactory接口有如下接口方法:
接口里定义了一个变量String FACTORY_BEAN_PREFIX = "&";
  这是用来区分是获取FactoryBean还是FactoryBean的createBean创建的实例.如果&开始则获取FactoryBean;否则获取createBean创建的实例.
我们来看下定义的方法:
  a, 获取bean,这边可以实现单例,原型
    Object getBean(String name) throws BeansException; 可以用别名查找哦
    <T> T getBean(String name, Class<T> requiredType) throws BeansException;
    <T> T getBean(Class<T> requiredType) throws BeansException; 这边的类型可以是接口或者子类,但不能是null
    Object getBean(String name, Object... args) throws BeansException;
  b, 判断是否包含bean.陷阱出现:这边不管类是否抽象类,懒加载,是否在容器范围内,只要符合都返回true,所以这边true,不一定能从getBean获取实例
    boolean containsBean(String name);
  c, 单例,原型,bean类型的判断
    boolean isSingleton(String name) throws NoSuchBeanDefinitionException;
    boolean isPrototype(String name) throws NoSuchBeanDefinitionException;
    boolean isTypeMatch(String name, Class<?> targetType) throws NoSuchBeanDefinitionException;用来查询指定了名字的Bean的Class类型是否是特定的Class类型
  d, 获取bean 的类型,别名
    Class<?> getType(String name) throws NoSuchBeanDefinitionException;
    String[] getAliases(String name);查询Bean的别名
感觉乱乱的,不知道在写什么,好吧。。。。微笑



资源下载链接为: https://pan.quark.cn/s/9648a1f24758 这个HTML文件是一个专门设计的网页,适合在告白或纪念日这样的特殊时刻送给女朋友,给她带来惊喜。它通过HTML技术,将普通文字转化为富有情感和创意的表达方式,让数字媒体也能传递深情。HTML(HyperText Markup Language)是构建网页的基础语言,通过标签描述网页结构和内容,让浏览器正确展示页面。在这个特效网页中,开发者可能使用了HTML5的新特性,比如音频、视频、Canvas画布或WebGL图形,来提升视觉效果和交互体验。 原本这个文件可能是基于ASP.NET技术构建的,其扩展名是“.aspx”。ASP.NET是微软开发的一个服务器端Web应用程序框架,支持多种编程语言(如C#或VB.NET)来编写动态网页。但为了在本地直接运行,不依赖服务器,开发者将其转换为纯静态的HTML格式,只需浏览器即可打开查看。 在使用这个HTML特效页时,建议使用Internet Explorer(IE)浏览器,因为一些老的或特定的网页特效可能只在IE上表现正常,尤其是那些依赖ActiveX控件或IE特有功能的页面。不过,由于IE逐渐被淘汰,现代网页可能不再对其进行优化,因此在其他现代浏览器上运行可能会出现问题。 压缩包内的文件“yangyisen0713-7561403-biaobai(html版本)_1598430618”是经过压缩的HTML文件,可能包含图片、CSS样式表和JavaScript脚本等资源。用户需要先解压,然后在浏览器中打开HTML文件,就能看到预设的告白或纪念日特效。 这个项目展示了HTML作为动态和互动内容载体的强大能力,也提醒我们,尽管技术在进步,但有时复古的方式(如使用IE浏览器)仍能唤起怀旧之情。在准备类似的个性化礼物时,掌握基本的HTML和网页制作技巧非常
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值