草庐IT

Bean-IOC

全部标签

IOC-反转控制/ DI-依赖注入

7.1IOC(inversionofcontrol)–反转控制1)之前我们在学JSP的时候,在CoreServlet中,我们创建xxxDao对象是如何创建的?IXxxDao xxxDao = new XxxDaoImpl();这种写法new了一个XxxDaoImpl类,这样使得CoreServlet和Dao耦合了。而且IXxxDao xxxDao = new XxxDaoImpl();这句代码如果出现在CoreServlet的某个方法内部,那么xxxDao这个对象的生命周期就是方法的级别。如果出现在CoreServlet的类中,也就是说xxxDao是一个属性,那么这个xxxDao的生命周期就伴

Spring IOC官方文档学习笔记(十二)之基于Java的容器配置

1.@Bean与@Configuration(1)标注于类之上的@Configuration注解与标注于方法之上的@Bean注解是支持基于Java的容器配置的核心,被@Bean注解标注的方法用于实例化bean并将其注入至容器中,它与基于xml配置中的标签起着相同的作用,@Bean可用在任何被@Component注解标注的类中,不过绝大部分情况下它们都被用于被@Configuration注解标注的类中;被@Configuration注解标注的类通常作为bean的定义源,如同基于xml配置中的标签,此外,还可在@Configuration标注的类中配置bean之间的依赖关系,如下//两个普通的类,

Spring IOC官方文档学习笔记(十二)之基于Java的容器配置

1.@Bean与@Configuration(1)标注于类之上的@Configuration注解与标注于方法之上的@Bean注解是支持基于Java的容器配置的核心,被@Bean注解标注的方法用于实例化bean并将其注入至容器中,它与基于xml配置中的标签起着相同的作用,@Bean可用在任何被@Component注解标注的类中,不过绝大部分情况下它们都被用于被@Configuration注解标注的类中;被@Configuration注解标注的类通常作为bean的定义源,如同基于xml配置中的标签,此外,还可在@Configuration标注的类中配置bean之间的依赖关系,如下//两个普通的类,

Spring IOC官方文档学习笔记(十一)之使用JSR 330标准注解

1.使用@Inject和@Named进行依赖注入(1)Spring提供了对JSR330标准注解的支持,因此我们也可以使用JSR330标准注解来进行依赖注入,不过,在此之前,我们得先使用maven添加相关依赖,如下javax.injectjavax.inject1(2)JSR330标准注解提供了@Inject注解进行依赖注入,它的作用同@Autowired,我们可以将它用于变量,方法或构造函数参数上,如下@ComponentpublicclassExampleA{//使用@Inject注解,来进行依赖项的注入,它的作用跟@Autowired是完全一样的,只不过它是java提供的注解,Spring

Spring IOC官方文档学习笔记(十一)之使用JSR 330标准注解

1.使用@Inject和@Named进行依赖注入(1)Spring提供了对JSR330标准注解的支持,因此我们也可以使用JSR330标准注解来进行依赖注入,不过,在此之前,我们得先使用maven添加相关依赖,如下javax.injectjavax.inject1(2)JSR330标准注解提供了@Inject注解进行依赖注入,它的作用同@Autowired,我们可以将它用于变量,方法或构造函数参数上,如下@ComponentpublicclassExampleA{//使用@Inject注解,来进行依赖项的注入,它的作用跟@Autowired是完全一样的,只不过它是java提供的注解,Spring

Spring IOC官方文档学习笔记(十四)之ApplicationContext的其他功能

1.使用MessageSource(1)有时,我们的项目可能会面临国际化需求,例如:对不同国家的人,我们需返回不同语言的消息,而java本身已经给我们提供了ResourceBundle类实现国际化的需求,如下//在resources目录下,新建两个配置文件,分别为message_en_us.properties和message_zh_cn.properties,内容如下//message_en_us.properties文件中配置如下country=us//message_zh_cn.properties文件中配置如下,注意对中文使用unicode编码country=\u4e2d\u56fd/

Spring IOC官方文档学习笔记(十四)之ApplicationContext的其他功能

1.使用MessageSource(1)有时,我们的项目可能会面临国际化需求,例如:对不同国家的人,我们需返回不同语言的消息,而java本身已经给我们提供了ResourceBundle类实现国际化的需求,如下//在resources目录下,新建两个配置文件,分别为message_en_us.properties和message_zh_cn.properties,内容如下//message_en_us.properties文件中配置如下country=us//message_zh_cn.properties文件中配置如下,注意对中文使用unicode编码country=\u4e2d\u56fd/

【Java面试】Spring 中,有两个 id 相同的 bean,会报错吗,如果会报错,在哪个阶段报错

Hi,大家好,我是Mic一个工作3年的粉丝,早上6点给我微信发语音,把我直接吓醒。我以为什么天大的事情,结果一问才知道。面试官问了他一个问题没答上来,问题是“Spring里面,如果两个id相同的bean会报错吗?如果会,在哪个阶段报错?”下面看看普通人和高手的回答!普通人:两个id相同的bean应该会报错因为在SpringIOC容器里面,它的id一定是唯一的吧。如果说有两个相同的id的话那就会存在找不到,就是说我们去找一个bean的时候,他会根据名字来找,要么根据类型。在哪个阶段的话。。。应该是在spring启动的时候吧。高手:好的,关于这个问题,我从几个点来回答。首先,在同一个XML配置文件

【Java面试】Spring 中,有两个 id 相同的 bean,会报错吗,如果会报错,在哪个阶段报错

Hi,大家好,我是Mic一个工作3年的粉丝,早上6点给我微信发语音,把我直接吓醒。我以为什么天大的事情,结果一问才知道。面试官问了他一个问题没答上来,问题是“Spring里面,如果两个id相同的bean会报错吗?如果会,在哪个阶段报错?”下面看看普通人和高手的回答!普通人:两个id相同的bean应该会报错因为在SpringIOC容器里面,它的id一定是唯一的吧。如果说有两个相同的id的话那就会存在找不到,就是说我们去找一个bean的时候,他会根据名字来找,要么根据类型。在哪个阶段的话。。。应该是在spring启动的时候吧。高手:好的,关于这个问题,我从几个点来回答。首先,在同一个XML配置文件

Spring启动过程中实例化部分代码的分析(Bean的推断构造方法)

【1】前言  实例化这一步便是在doCreateBean方法的  instanceWrapper=createBeanInstance(beanName,mbd,args);  这段代码中。 【2】对于实例化的疑问  对于Spring中的beanBeanDefinition,需要通过实例化得到一个bean对象才会被放入容器中,而实例化就需要用到构造方法。  分析:一个类存在多个构造方法,那么Spring进行实例化时,该如何去确定到底用哪个构造方法呢?    1.如果开发者指定了想要使用的构造方法,那么就用这个构造方法。    2.如果开发者没有指定想要使用的构造方法,则看开发者有没有让Spri