SpringBean

SpringBean的注入问题

Spring和bean的赋值取值

  • spring是一个容器,里面可以装对象,可以赋值取值,也可以帮我们创建对象 告诉Spring何如创造

  • 一个对象,如何从Spring中取出对象 从spring容器中取出的对象,就不一定是浴室的对象, 而是被spring增强的对象

  • Bean:是从spring容器中取出的对象叫做bean

  • 实体类的包名叫Bean,是从spring这里引申过来的 实体类的包有多种命名方式:entity,bean,domain

两个实体类

@Data
public class Student {
    private  int id;
    private String name;
    private  category categoryBean;
    private List lis;
    private Map map;
}

@Data
public class category {
    private int cid;
}

*默认情况下,由Spring容器中创建的的都是单例模式,也就是说不论容器取出几次,取出的都是一个对象如果修改此行为,那么需要为该bean设置一个scope属性,值为prototype
这样的话,每次从容器中取出的对象都是单独的
xml:space=“preserve”
(通俗的来说单例就是只创建一个,多例使用几次创建几次)
*
初建一个对象的同时,把该对象的属性进行赋值,能赋值的属性的前提,是该属性有setter方法,或者该属性是public的
创建一个xml文件

<?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
         http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">

    <bean id="hello" class="com.entity.Student" xml:space="preserve">
        <property name="id" value="1"></property>
        <property name="name" value="张三"></property>
        <!--这里是对集合的赋值-->
        <property name="lis">
            <list>
                <value>打老虎</value>
            </list>
        </property>
        <!--这里是map-->
        <property name="map">
            <map>
                <entry key="1" value="注意身体程序员" />
            </map>
        </property>

        <property name="map">
            <props>
              <!--两种赋值方式-->
                <prop key="1">吃饭了嘛?</prop>
            </props>
        </property>
        <!-- 引入另一个bean对象   使用ref赋值  -->
        <property name="categoryBean" ref="category1" />
    </bean>

    <bean id="category1" class="com.entity.category" >
        <property name="cid" value="1" />
    </bean>
</beans>

创建Spring容器对象,通过加载配置文件创建出来的
ClassPathXmlApplicationContext 加载配置文件

  ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext("/spring-conf.xml");
        Object hello = ctx.getBean("hello");
        if(hello instanceof Student){
            System.out.println(hello);
        }

从spring容器中取出BookBean类型的对象
能取得前提是容器中只有一个该类型的bean才行
BookBean bean = ctx.getBean(BookBean.class);
同时根据id和类型取出id

 Student helo = ctx.getBean("hello", Student.class);

从一个容器中取出一个对象,赋值给变量的过程叫做:装配
上面大致有两种装配方式,根据id装配和根据类型装配

spring的3大核心技术
DI 依赖注入
IOC 控制反转
AOP 面向切面编程

若是使用框架注入在xml已经完成
在任意地方引入xml即可即可不用在写@service等注解

@ImportResource("classpath:config/spring-config.xml")

代码千万行,注视第一行。格式不规范,报错两行泪!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值