我是靠谱客的博主 明理香氛,最近开发中收集的这篇文章主要介绍【Spring笔记】03、value与注入方式的区别,特殊值的注入问题,各种类型的自动装配,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1.value与<value>注入方式的区别:

 

使用子元素<value>注入

而使用value属性注入

参数值位置

写在首尾标签(<value></value>)的中间(不加双引号)

写在value的属性值中(必须加双引号)

type属性

 

有(可选)

可以通过type属性指定数据类型

参数值包含特殊字符(<, &)时的处理方法

两种处理方法。

一、使用<![CDATA[  ]]>标记

二、使用XML预定义的实体引用

一种处理方法。即使用XML预定义的实体引用

其中,XML预定义的实体引用,部分如表所示。

实体引用

表示的符号

&lt;

<

&amp;

&

&gt;

>


2.特殊值的注入问题

①给对象类型赋值null :
        <property name="name" >  
                <null/>     
        </property>

注意:赋值null 没有<value>
②赋空值 ""  :
        <property name="name" >  
                <value></value>  
        </property>

3.ioc中定义bean的前提

在ioc中定义bean的前提:该bean的类必须提供了无参构造(系统会自动生成无参构造,但定义了有参构造后系统不会自动生成无参构造)

4.自动装配(第四种依赖注入)(只适用于ref类型 ):

约定优于配置
自动装配:
<bean ... class="org.lanqiao.entity.Course"  autowire="byName|byType|constructor|no" >  byName本质是byId
①byName:  自动寻找:其他bean的id值=该Course类的属性名
②byType:  其他bean的类型(class) 是否与 该Course类的ref属性类型一致  (注意,此种方式必须满足:当前Ioc容器中只能有一个Bean满足条件
③constructor: 其他bean的类型(class) 是否与该Course类的构造方法参数的类型一致;此种方式的本质就是byType


可以在头文件中 一次性将该ioc容器的所有bean统一设置成自动装配:
<beans xmlns="http://www.springframework.org/schema/beans"
...
default-autowire="byName">

提示:自动装配虽然可以减少代码量,但是会降低程序的可读性,使用时需要谨慎。


5.使用注解定义bean:

通过注解的形式将bean以及相应的属性值放入ioc容器

<context:component-scan base-package="org.lanqiao.dao">
</context:component-scan>Spring在启动的时候,会根据base-package在该包中扫描所有类,查找这些类是否有注解@Component("studentDao"),如果有,则将该类 加入spring Ioc容器。

@Component细化:

①dao层注解:@Repository
②service层注解:@Service
③控制器层注解:@Controller


 

最后

以上就是明理香氛为你收集整理的【Spring笔记】03、value与注入方式的区别,特殊值的注入问题,各种类型的自动装配的全部内容,希望文章能够帮你解决【Spring笔记】03、value与注入方式的区别,特殊值的注入问题,各种类型的自动装配所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(43)

评论列表共有 0 条评论

立即
投稿
返回
顶部