Spring-01

1.bean注入

<?xml version="1.0" encoding="UTF-8" ?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
    https://www.springframework.org/schema/beans/spring-beans.xsd">

    <bean id="address" class="com.gykj.pojo.Address">
        <property name="address" value="铜冶"/>
    </bean>
<!--    id  bean唯一标识符
        class:全限定名-->
    <bean id="student" class="com.gykj.pojo.Student">
        <property name="name" value="linyajing"/>
<!--        对象注入-->
        <property name="address" ref="address"/>
<!--        数组-->
        <property name="books">
            <array>
                <value>java编程思想</value>
                <value>追风筝的人</value>
            </array>
        </property>
<!--        list-->
        <property name="hobbys">
            <list>
                <value>唱歌</value>
                <value>跑步</value>
            </list>
        </property>
<!--        map-->
        <property name="card">
            <map>
                <entry key="身份证" value="1234456"/>
                <entry key="学号" value="17021211"/>
            </map>
        </property>
<!--        set-->
        <property name="games">
            <set>
                <value>王者</value>
                <value>消消乐</value>
            </set>
        </property>
<!--        空值-->
        <property name="wife">
            <null/>
        </property>
<!--        配置属性-->
        <property name="info">
            <props>
                <prop key="url">localhost3306</prop>
                <prop key="username">root</prop>
            </props>
        </property>

    </bean>


</beans>

2.bean作用域

        1、单例模式(默认)

        2、原型模式(每次从容器中get的时候,都会创建新对象)

        其余request、application、session都只能在web中使用

3.bean自动装配

bean自动装配是spring满足bean依赖的一种方式

spring会在上下文中自动寻找,并自动给bean装配属性

在spring中有三种装配的方式

        在xml中显示的配置

        在java中显示配置

        隐式的自动装配bean

ByType自动装配

  <bean id="cat" class="com.gykj.pojo.Cat"></bean>
    <bean id="dog" class="com.gykj.pojo.Dog"></bean>

    <bean id="people" class="com.gykj.pojo.People" autowire="byName">
        <property name="name" value="wode"></property>
    </bean>

byName时,需要保证所有的bean的id唯一,并且这个bean需要和自动注入的属性的set方法的值一致

byType时,需要保证所有的bean的class唯一,并且这个bean需要和自动注入的属性一致

4.@Autowired

直接在属性上使用即可,也可以在set方法上使用

使用Autowired我们就可以不用写set方法了,前提是你这个自动装配的属性在IOC容器只能够存在,且符合名字byName

@Nullable  字段标记了这个注解,可以为空

如果@Autowired自动装配的环境比较复杂,自动装配无法通过一个注解完成的时候,我们可以使用@qualifier(value="**")去配置@Autowired的使用,指定一个唯一的bean对象注入

    @Autowired
    @Qualifier(value = "cat22")
    private Cat cat;
    @Resource(name = "dog")
    private Dog dog;

resource和Autowired区别:

    都是用来自动装配的,都可以放在属性字段上

    @Autowired通过byType的方式实现,而且必须要求这个对象存在

    @Resource默认通过Byname方式实现,如果找不到名字,则通过byType实现,如果两个方式都找不到,就报错

5.@Component

//相当于<bean id = "user" class="com.gykj.pojo.User/>
@Component
public class User {

//    相当于在bean中的属性<property id = "name" value="name"/>
    @Value("linyajing11")
    public String name ;
}

衍生的注解:

@Component有几个衍生注解,我们在web开发中,会按照mvc三层架构分层

        @dao  【@Repository】

        @service 【@Service】

        @controller 【@Controller】

这四个注解功能都是一样的,都是代表将某个类注册到spring中,装配bean

xml与注解:

        xml更加万能,适用于任何场合,维护简单方便

         注解不是自己类使用不了,维护相对复杂

xml与注解最佳时间:

        xml用来管理bean

        注解只负责完成属性的注入

        我们在使用的过程中,只需要注意一个问题,必须让注解生效,就需要开启注解的支持

<context:component-scan  base-package = "com.gykj"/>
<comtext:annotation-config/>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值