当前位置: 首页 > news >正文

十大旅游网站排名百度网址大全网址导航

十大旅游网站排名,百度网址大全网址导航,昆明网站建设技术研发中心,搜了网spring容器 程序启动时,会给spring容器一个清单,清单中列出了需要创建的对象以及对象依赖关系,spring容器会创建和组装好清单中的对象,然后将这些对象存放在spring容器中,当程序中需要使用的时候,可以到容…

spring容器

程序启动时,会给spring容器一个清单,清单中列出了需要创建的对象以及对象依赖关系,spring容器会创建和组装好清单中的对象,然后将这些对象存放在spring容器中,当程序中需要使用的时候,可以到容器中查找获取,然后直接使用

di:spring容器中创建对象时给其设置依赖对象的方式

ioc:使用者使用依赖的对象需要自己去创建和组装,而现在交给spring容器去完成。如给spring一个清单,清单中列出了需要创建B对象以及其他的一些对象(可能包含了B类型中需要依赖对象),此时spring在创建B对象的时候,会看B对象需要依赖于哪些对象,然后去查找一下清单中有没有包含这些被依赖的对象,如果有就去将其创建好,然后将其传递给B对象

Spring系列第3篇:Spring容器基本使用及原理

BeanFactory接口

org.springframework.beans.factory.BeanFactory

spring容器中具有代表性的容器就是BeanFactory接口,这个是spring容器的顶层接口,提供了容器最基本的功能。

常用的几个方法
//按bean的id或者别名查找容器中的bean
Object getBean(String name) throws BeansException//这个是一个泛型方法,按照bean的id或者别名查找指定类型的bean,返回指定类型的bean对象
<T> T getBean(String name, Class<T> requiredType) throws BeansException;//返回容器中指定类型的bean对象
<T> T getBean(Class<T> requiredType) throws BeansException;//获取指定类型bean对象的获取器,这个方法比较特别,以后会专门来讲
<T> ObjectProvider<T> getBeanProvider(Class<T> requiredType);

ApplicationContext接口

org.springframework.context.ApplicationContext

这个接口继承了BeanFactory接口,所以内部包含了BeanFactory所有的功能,并且在其上进行了扩展,增加了很多企业级功能,比如AOP、国际化、事件支持等

ClassPathXmlApplicationContext类

org.springframework.context.support.ClassPathXmlApplicationContext

这个类实现了ApplicationContext接口,注意一下这个类名称包含了ClassPath Xml,说明这个容器类可以从classpath中加载bean xml配置文件,然后创建xml中配置的bean对象

AnnotationConfigApplicationContext类

org.springframework.context.annotation.AnnotationConfigApplicationContext

这个类也实现了ApplicationContext接口,注意其类名包含了Annotation和config两个单词,上面我们有说过,bean的定义支持xml的方式和注解的方式,当我们使用注解的方式定义bean的时候,就需要用到这个容器来装载了,这个容器内部会解析注解来构建构建和管理需要的bean。

<dependencyManagement><dependencies><dependency><groupId>org.springframework</groupId><artifactId>spring-core</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-beans</artifactId><version>${spring.version}</version></dependency></dependencies></dependencyManagement>

spring-core 提供了轻量级、非入侵的方式管理对象。主要包含ioc,di。还提供aop支持,用来记录日志,性能监控。

spring-context  在spring-core的基础上,加载和管理bean,并提供处理配置 依赖注入 生命周期。

应用程序的上下文由ApplicationContext接口表示,充当了同期角色,是spring-context 的核心接口之一。管理bean,作用域,并提供bean的访问。提供可扩展的方式管理应用程序的上下文,并支持各种配置及功能。

spring-boot 打印所有的bean

ApplicationContext appctx = SpringApplication.run(DemoApplication.class, args)
String[] beanNames =appctx.getBeanDefinitionNames();
Arrays.sort(beanNames);
for(String beanNamse:beanNames){System.out.print("name:"+ beanName)
}

 spring-beans 提供bean的定义,配置。xml,注解等;bean的实例化和初始化;bean的生命周期;bean的作用域管理

使用spring容器

Spring系列第3篇:Spring容器基本使用及原理

下面演示一下bean名称和别名的各种写法。

<!-- 通过id定义bean名称:user1 -->
<bean id="user1" class="com.javacode.lesson.demo.User"/><!-- 通过name定义bean名称:user2 -->
<bean name="user2" class="com.javacode.lesson.demo.User"/><!-- id为名称,name为别名;bean名称:user3,1个别名:[user3_1] -->
<bean id="user3" name="user3_1" class="com.javacode.lesson.demo.User"/><!-- bean名称:user4,多个别名:[user4_1,user4_2,user4_3,user4_4] -->
<bean id="user4" name="user4_1,user4_2;user4_3 user4_4" class="com.javacode.lesson.demo.User"/><!-- bean名称:user5,别名:[user5_1,user5_2,user5_3,user5_4] -->
<bean name="user5,user5_1,user5_2;user5_3 user5_4" class="com.javacode.lesson.demo.User"/>

我们来写个java来输出上面所有bean的名称和其别名,如下:

package com.javacode2018.lesson001.demo2;import org.springframework.beans.factory.BeanFactory;
import org.springframework.context.support.ClassPathXmlApplicationContext;import java.util.Arrays;public class Client {public static void main(String[] args) {//1.bean配置文件位置String beanXml = "classpath:/com/javacode/lesson/demo2/beans.xml";//2.创建ClassPathXmlApplicationContext容器,给容器指定需要加载的bean配置文件ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(beanXml);for (String beanName : Arrays.asList("user1", "user2", "user3", "user4", "user5")) {//获取bean的别名String[] aliases = context.getAliases(beanName);System.out.println(String.format("beanName:%s,别名:[%s]", beanName, String.join(",", aliases)));}System.out.println("spring容器中所有bean如下:");//getBeanDefinitionNames用于获取容器中所有bean的名称for (String beanName : context.getBeanDefinitionNames()) {//获取bean的别名String[] aliases = context.getAliases(beanName);System.out.println(String.format("beanName:%s,别名:[%s]", beanName, String.join(",", aliases)));}}
}

上面有2个新的方法:

getAliases:通过bean名称获取这个bean的所有别名

getBeanDefinitionNames:返回spring容器中定义的所有bean的名称

运行输出:

beanName:user1,别名:[]
beanName:user2,别名:[]
beanName:user3,别名:[user3_1]
beanName:user4,别名:[user4_1,user4_4,user4_2,user4_3]
beanName:user5,别名:[user5_3,user5_4,user5_1,user5_2]
spring容器中所有bean如下:
beanName:user1,别名:[]
beanName:user2,别名:[]
beanName:user3,别名:[user3_1]
beanName:user4,别名:[user4_1,user4_4,user4_2,user4_3]
beanName:user5,别名:[user5_3,user5_4,user5_1,user5_2]

http://www.shuangfujiaoyu.com/news/34401.html

相关文章:

  • 工业设计appseo页面优化公司
  • 如何查询网站哪个公司做的傻瓜式自助建站系统
  • wordpress做双语网站百度云搜索引擎官网
  • 好看的移动端网站seo外包公司如何优化
  • 深圳做网站联系电话沈阳专业网站seo推广
  • 电子商务平台方案优化工具箱
  • 做免费的网站教程最近的新闻大事20条
  • 做视频哪个网站收入高搜索引擎查询
  • 网站制作费优化网站平台
  • 爬虫代理ip购买欧美seo查询
  • 怎么自己做礼品网站公司seo
  • 用新华做网站名是否侵权网络营销经典失败案例
  • 手机网站怎么搜索引擎设计网站大全
  • wordpress聊天长春网站优化咨询
  • 专门做情侣装的网站网上做广告怎么收费
  • 当地自己的淘宝网站怎么做关键词在线下载
  • 免费网页空间2023北京seo费用是多少
  • 模板网站制作公司今天的新闻大事10条
  • wordpress不间断音乐网站排名优化怎样做
  • 郑州制作网站哪家好怎样把产品放到网上销售
  • 精品课网站建设国产免费crm系统有哪些
  • 租服务器搜索引擎优化的主要内容
  • 网站建设的流程图b2b网站源码
  • 网站开发工具哪个好品牌推广包括哪些内容
  • 什么网站可以免费做兼职百度指数明星搜索排名
  • 淘宝优惠券网站建设线上营销推广方法
  • wordpress泛域名解析seo是指什么职位
  • 软件班级网站建设主题关键词筛选工具
  • 门户网站营销怎么做软文推广收费
  • 网站开发文档管理工具电商关键词排名优化怎么做?