首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

跟着柴毛毛学Spring(3)——简化Bean的配置

自动装配 自动装配的种类 byName:根据属性的名字自动装配 byType:根据属性的类型自动装配 constructor:根据构造器的参数类型自动装配 autodetect:最佳自动装配。...构造器的自动装配和byType自动装配具有相同的缺点:当某一类型的bean有多个时,Spring无法确定究竟选择哪个bean,就直接抛出异常。...此外,构造器的自动装配还有个独特的缺点:当构造器有多个时,Spring也无法选择究竟初始化哪个构造器,因此也直接跑出异常。 autodetect:最佳自动装配。...一样的问题:若同一类型的bean有多个时,或找不到该类型的bean,Spring就会抛出异常。...若找不到某一类型的bean 如果bean中的某些属性、参数不需要初始化值也能接受的话,那就为该属性或参数的@Autowired添加required属性: @Autowired(required

76330

Spring之IOC自动装配

byName:根据属性名和id匹配, byType:根据属性的类型和class匹配 全局唯一 7.3、ByType自动装配 byType:根据属性的类型和class匹配 全局唯一 的时候,需要保证所有bean的class唯一,并且这个bean需要和自动注入的属性的类型一致! 7.4、使用注解实现自动装配 jdk1.5支持的注解,Spring2.5就支持注解了!...dog; private String name; } 如果@Autowired自动装配的环境比较复杂,自动装配无法通过一个注解@Autowired完成的时候、我们可以使用@Qualifier...byname的方式实现,如果找不到名字,则通过byType实现!...如果两个都找不到的情况下,就报错!【常用】 执行顺序不同:Autowired 通过byType的方式实现;Resource默认通过byname的方式实现

34720
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    javabean:boolean和Boolean类型的getter方法名是有区别的

    javaBean中,要设置或获取某个property的值,就需要相应的get和set方法,对于primitive和自定义类类型的属性(如:property),getter和setter方法就是getProperty...对于类型为 boolean的属性(不是Boolean),getter方法还可以写为isProperty(getProperty仍然可用)。...一般来我们用IDE(eclipse,JBuilder,IntelliJ IDEA)的自动生成代码功能为属性添加gettter/setter方法时,对于boolean类型,生成的getter方法名都是isProperty...所以对于boolean类的属性,如果有一天你把它手工改成了Boolean类型,那么就要把相应的getter方法名改为getProperty,否则isProperty方法不会被视为property的gettter...下面是个简单的测试代码,原本是boolean类型的woman变量让我改成了Boolean,然后PropertyUtilsBean 就无法找到woman的getter方法了,如果改成getWoman,则不论

    2K90

    spring之通过注解方式配置Bean(二)

    使用@Autowired注解自动装配具有类型兼容的单个Bean属性: 构造器:普通字段,即使是非public,一切具有参数的方法都可使用@Autowired注解。...若某一属性不允许被设置,可以设置@Autowired注解的required属性为false。 默认情况下,当springIOC容器存在多个类型兼容的Bean时,通过类型的自动装配将无法工作。...@Autowired注解也可以应用到数据类型的属性上,此时spring将会把所有匹配的bean进行自动装配。...@Autowired注解也可以应用在集合属性上,此时spring会读取集合的类型信息,然后自动装配给所有与之兼容的bean。...@Autowired用在jav.util.Map上时,若该Map的键值为string,那么spring将自动装配与Map值类型兼容的bean,此时bean的名称为键值。

    34830

    Spring | Bean自动装配详解

    文章目录 Bean的自动装配 5.1、自动装配说明 5.2、测试环境搭建 5.3、 自动装配(autowire) 5.3.1、byName (按名称自动装配) 5.3.2、byType (按类型自动装配...(autowire) 5.3.1、byName (按名称自动装配) 由于在手动配置xml过程中,常常发生字母缺漏和大小写等错误,而无法对其进行检查,使得开发效率降低。...5.3.2、byType (按类型自动装配) 使用autowire byType首先需要保证:同一类型的对象,在spring容器中唯一。如果不唯一,会报不唯一的异常。...使用AutoWired我们可以不用编写Set方法了,前提是这个自动装配的属性在IOC(Spring) 容器中存在 @Autowired默认使用 byType来装配属性,如果匹配到类型的多个实例,再通过...(属于J2EE复返)默认通过byName的方式实现,如果找不到名字,则通过byType实现!

    73110

    ssm框架过时了吗_spring实战

    -- byName:会自动在容器上下文中查找,和自己对象Set方法后面的值对应的beanid! byTaoe:会自动在容器上下文中查找,和自己对象属性类型相同的bean!...,需要保证所有bean的id唯一,并且这个bean需要和自动注入的属性的set方法的值一致 byType的时候,需要保证所有bean的class唯一,并且这个bean需要和自动注入的属性的类型一致 注解实现自动装配...null @Autowired(requeired = false)说明这个对象可以为null,否则不允许为空 如果@Autowired自动装配的环境比较复杂,自动配置无法通过一个注解[@Autowired...如果两个都找不到的情况下,就报错![常用] 执行顺序不同 @Autowired通过byType的方式实现 使用注解开发 Spring4之后,使用注解开发,就要导入aop包。 自动装配通过类型,名字 如果Autowired不能唯一自动装配上属性,则需要通过@Quantityfier(value=“xxx”) @Nullable:字段标记了这个注解,

    51430

    ssm框架过时了吗_spring源码

    -- byName:会自动在容器上下文中查找,和自己对象Set方法后面的值对应的beanid! byTaoe:会自动在容器上下文中查找,和自己对象属性类型相同的bean!...,需要保证所有bean的id唯一,并且这个bean需要和自动注入的属性的set方法的值一致 byType的时候,需要保证所有bean的class唯一,并且这个bean需要和自动注入的属性的类型一致 注解实现自动装配...null @Autowired(requeired = false)说明这个对象可以为null,否则不允许为空 如果@Autowired自动装配的环境比较复杂,自动配置无法通过一个注解[@Autowired...如果两个都找不到的情况下,就报错![常用] 执行顺序不同 @Autowired通过byType的方式实现 使用注解开发 Spring4之后,使用注解开发,就要导入aop包。 自动装配通过类型,名字 如果Autowired不能唯一自动装配上属性,则需要通过@Quantityfier(value=“xxx”) @Nullable:字段标记了这个注解,

    39040

    SSM-Spring(1)「建议收藏」

    -- byName:会自动在容器上下文中查找,和自己对象Set方法后面的值对应的beanid! byTaoe:会自动在容器上下文中查找,和自己对象属性类型相同的bean!...,需要保证所有bean的id唯一,并且这个bean需要和自动注入的属性的set方法的值一致 byType的时候,需要保证所有bean的class唯一,并且这个bean需要和自动注入的属性的类型一致 注解实现自动装配...null @Autowired(requeired = false)说明这个对象可以为null,否则不允许为空 如果@Autowired自动装配的环境比较复杂,自动配置无法通过一个注解[@Autowired...如果两个都找不到的情况下,就报错![常用] 执行顺序不同 @Autowired通过byType的方式实现 使用注解开发 Spring4之后,使用注解开发,就要导入aop包。 自动装配通过类型,名字 如果Autowired不能唯一自动装配上属性,则需要通过@Quantityfier(value=“xxx”) @Nullable:字段标记了这个注解,

    27840

    Spring系列之IOC(控制反转)介绍

    :可以对成员变量、方法和构造函数进行注解,来完成自动装配的工作,通俗来说就是会根据类型从容器中自动查到到一个Bean给bookDAO字段。...@Autowired是根据类型进行自动装配的,如果需要按名称进行装配,则需要配合@Qualifier。...Resource默认是按照名称来装配注入的,只有当找不到与名称匹配的bean才会按照类型来装配注入; 2、@Autowired默认是按照类型装配注入的,如果想按照名称来转配注入,则需要结合@Qualifier...如果指定了type,则从上下文中找到类型匹配的唯一bean进行装配,找不到或者找到多个,都会抛出异常   8.4....如果既没有指定name,又没有指定type,则自动按照byName方式进行装配;如果没有匹配,则回退为一个原始类型进行匹配,如果匹配则自动装配;

    31820

    基于Protel的PCB板图设计

    在原理图已完成的基础上利用Protel进行PCB设计一般应遵循确定外形、布局、布线、规则检查等几个步骤。本文分析了布局、布线的基本原则,探讨了在整个PCB设计过程中的一些经验和技巧。...本文以Protel99 SE为设计工具,分析和探讨PCB设计中的基本原则及经验技巧。 一、快速确定PCB外形 设计PCB先要确定电路板的外形,通常就是在禁止布线层画出电气的布线范围。...二、元件布局 开始布局之前首先要通过网络表载入元器件,这个过程中经常会遇到网络表无法完全载入的错误,主要可归为两类:一类是找不到元件,解决方法是确认原理图中已定义元件的封装形式,并确认已添加相应的PCB...元件库,若仍找不到元件就要自己造一个元件封装了;另一类是丢失引脚,最常见的就是二极管、三极管的引脚丢失,这是由于原理图中的引脚一般是字母A、K、E、B、C,而PCB元件的引脚则是数字1、2、3,解决方法就是更改原理图的定义...正确的丝印层字符布置原则应该是不出歧义、见缝插针、美观大方。 三、布线 这是PCB设计中的一个非常重要的环节,PCB布线有单面布线、双面布线及多层布线。布线的方式有两种:自动布线及交互式布线。

    1.3K40

    Spring框架之IOC(控制反转)

    :可以对成员变量、方法和构造函数进行注解,来完成自动装配的工作,通俗来说就是会根据类型从容器中自动查到到一个Bean给bookDAO字段。...@Autowired是根据类型进行自动装配的,如果需要按名称进行装配,则需要配合@Qualifier。...默认是按照名称来装配注入的,只有当找不到与名称匹配的bean才会按照类型来装配注入; 2、@Autowired默认是按照类型装配注入的,如果想按照名称来转配注入,则需要结合@Qualifier一起使用...如果指定了type,则从上下文中找到类型匹配的唯一bean进行装配,找不到或者找到多个,都会抛出异常   8.4....如果既没有指定name,又没有指定type,则自动按照byName方式进行装配;如果没有匹配,则回退为一个原始类型进行匹配,如果匹配则自动装配;

    2.7K20

    Spring官网阅读系列(三):自动注入与精确注入

    byName 这种方式,我们为了让Spring完成自动注入需要提供两个条件 提供setter方法 如果需要注入的属性为xxx,那么setter方法命名必须是setXxx,也就是说,命名必须规范 在找不到对应名称的...byType 测试代码跟之前唯一不同的就是修改配置autowire="byType",这里我们测试以下三种异常情况 找不到合适类型的bean,发现不报异常,同时不进行注入 找到了多个合适类型的bean...从官网中我们总结自动注入有以下几个缺陷: 精确注入会覆盖自动注入。并且我们不能注入基本数据类型,字符串,Class类型(这些数据的数组也不行)。...而且我们在使用自动注入时,对象之间的依赖关系不明确 对于一些为Spring容器生成文档的工具,无法获取依赖关系 容器中的多个bean定义可能会与自动注入的setter方法或构造函数参数指定的类型匹配。...但是,对于期望单个值的依赖项,我们无法随意确定到底有谁进行注入。如果没有唯一的bean定义可用,则会抛出异常 如何将Bean从自动注入中排除?

    68530

    Spring官网阅读(三)自动注入

    byName 这种方式,我们为了让Spring完成自动注入需要提供两个条件 提供setter方法 如果需要注入的属性为xxx,那么setter方法命名必须是setXxx,也就是说,命名必须规范 在找不到对应名称的...byType 测试代码跟之前唯一不同的就是修改配置autowire="byType",这里我们测试以下三种异常情况 找不到合适类型的bean,发现不报异常,同时不进行注入 找到了多个合适类型的bean...从官网中我们总结自动注入有以下几个缺陷: 精确注入会覆盖自动注入。并且我们不能注入基本数据类型,字符串,Class类型(这些数据的数组也不行)。...而且我们在使用自动注入时,对象之间的依赖关系不明确 对于一些为Spring容器生成文档的工具,无法获取依赖关系 容器中的多个bean定义可能会与自动注入的setter方法或构造函数参数指定的类型匹配。...但是,对于期望单个值的依赖项,我们无法随意确定到底有谁进行注入。如果没有唯一的bean定义可用,则会抛出异常 如何将Bean从自动注入中排除?

    88730

    Spring系列之依赖注入的方式「建议收藏」

    但是,如果Car构造函数3个入参的类型相同,仅通过type就无法确定对应关系了,这时需要通过入参索引的方式进行确定。 为了更好地演示按索引匹配入参的配置方式,特意对Car构造函数进行一下调整。...两者的区别是:@Autowired默认按类型装配,@Resource默认按名称装配,当找不到与名称匹配的bean时,才会按类型装配。      ...: 所以,一旦选择了“byType”类型的自动装配,请确认你的配置文件中每个数据类型定义一个唯一的bean。...(根据构造函数参数的数据类型,进行byType模式的自动装配。)...不是所有类型都能自动装配,不能自动装配的数据类型:Object、基本数据类型(Date、CharSequence、Number、URI、URL、Class、int)等。

    2.6K40

    SpringMVC-02 第一个SpringMVC程序

    /* 会匹配 *.jsp,会出现返回 jsp视图 时再次进入spring的DispatcherServlet 类,导致找不到对应的controller所以报404错。...可能遇到的问题:访问出现404,排查步骤: 查看控制台输出,看一下是不是缺少了什么jar包。 如果jar包存在,显示无法输出,就在IDEA的项目发布中,添加lib依赖! 重启Tomcat 即可解决!... /* 会匹配 *.jsp,会出现返回 jsp视图 时再次进入spring的DispatcherServlet 类,导致找不到对应的controller所以报404错。...hello; 方法中声明Model类型的参数是为了把Action中的数据带到视图中; 方法返回的结果是视图的名称hello,加上配置文件中的前后缀变成jsp/hello.jsp。...可能遇到的问题:访问出现404,排查步骤: 查看控制台输出,看一下是不是缺少了什么jar包。 如果jar包存在,显示无法输出,就在IDEA的项目发布中,添加lib依赖!

    90720

    Spring-04 Bean的自动装配

    3.按名称自动装配 由于在手动配置xml过程中,常常发生字母缺漏和大小写等错误,而无法对其进行检查,使得开发效率降低。 采用自动装配将避免这些错误,并且使配置简单化。...4.按类型自动装配 使用autowire byType首先需要保证:同一类型的对象,在spring容器中唯一。...byType: 需要保证所有的bean的class唯一,并且这个bean需要和自动注入的属性的类型一致!...5.4 @Qualifier @Autowired是根据类型自动装配的,加上@Qualifier则可以根据byName的方式自动装配 @Qualifier不能单独使用。...当找不到与名称匹配的bean时才按照类型进行装配。但是需要注意的是,如果name属性一旦指定,就只会按照名称进行装配。 它们的作用相同都是用注解方式注入对象,但执行顺序不同。

    61320

    Spring系列七:Spring 自动装配

    如果找不到这样的bean,则会引发错误。 byType 此选项支持基于bean类型的依赖项注入。在bean中自动装配属性时,属性的类类型用于在配置文件中搜索匹配的bean定义。...在启用了自动装配的bean中,它将查找构造函数参数的类类型,然后对所有构造函数参数执行自动装配类型。请注意,如果容器中没有一个完全属于构造函数参数类型的bean,则会引发致命错误。...,容器会在属性类类型中查找依赖项。...如果找不到这样的类型,则会引发错误。但是,如果有两个或多个相同类类型的bean,该怎么办?...在这种情况下,spring将无法选择正确的bean来注入属性,因此你将需要使用@Qualifier注解来帮助容器。

    88420

    Bean的自动装配与注解开发

    Bean的自动装配 自动装配是Spring满足Bean依赖的一种方式 Spring会在上下文自动寻找, 并且自动给bean装配属性 在Spring中有三种装配的方式 在xml中显示的配置 在Java中显示配置...-- byName:会自动在容器上下文查找, 和自己对象set方法后面的值对应的beanid byType:会自动在容器上下文查找, 和自己对象属性相同的beanid...set方法的值一致 byType的时候, 需要保证所有class的id唯一, 并且这个bean需要和自动注入的属性的类型一样 使用注解实现自动装配 JDK1.5支持注解,Spring2.5就支持注解了...private Dog dog; private String name; } 如果@Autowired自动装配的环境比较复杂, 自动装配无法通过一个注解【@Autowired】完成的时候,我们可以使用...@Resource默认通过byName的方式实现, 如果找不到名字, 则通过byType实现, 如果两个都找不到的情况下就报错 执行顺序不同: @Autowired通过btType的方式实现。

    51740

    Spring IoC中各个注解的理解和使用

    @Autowired默认按类型匹配的方式,在容器查找匹配的Bean,当有且仅有一个匹配的Bean时,Spring将其注入@Autowired标注的变量中。...,当Spring发现@Autowired注解时,将自动在代码上下文中找到和其匹配(默认是类型匹配)的Bean,并自动注入到相应的地方去。...,说一下@Resource的装配顺序: (1)、@Resource后面没有任何内容,默认通过name属性去匹配bean,找不到再按type去匹配 (2)、指定了name或者type则根据指定的类型去匹配...”或者是其父类“UserService”,否则由于类型不一致而无法注入,由于Action中的声明的“userService”变量使用了@Resource注解去标注,并且指明了其name = "userService...如下: @Autowired @Qualifier("personDaoBean") 存在多个实例配合使用 @Resource默认按名称装配,当找不到与名称匹配的bean才会按类型装配。

    57530
    领券