祝各位道友念头通达
GitHub Gitee 语雀 打赏

spring注入方式和数据的注入

Spring的优点:

  1. 核心容器提供spring框架的基本功能,核心容器的主要组件是BeanFactory, 他是工厂模式的实现. BeanFactory使用控制反转(IOC)模式将应用程序的配置和依赖性与实际的应用程序代码分开

 

 

 

环境搭建:

  1.一个依赖,四个核心

 

  2.控制反转

(1)含义:依赖于容器给予你资源,控制权坐落到了容器身上,不主动new实例化对象,而是需要哪个对象,便向容器发请求,让容器帮自己new一个对象出来

(2)依赖注入:所需求的对象,需要依赖容器注入,本质上是IOC和DI是同一思想下不同维度的表现.

 

 

 

 

(3) 注入的方式:

>接口注入:在接口中定义要注入的信息,并通过接口来完成注入。(Spring不支持这种注入方式--不支持的原因是--Spring声称其是非入侵式的《离开这个框架也能活》,如果使用接口注入的话,就违背了这一原则)

>setter注入:

 

 

>构造器注入

 

 

>注解注入

Xml文件的配置

<context:component-scan base-package="com.zhiyou.han"></context:component-scan>

 

注解有:1.自动注入:@Resources, @Autowired

   2.Bean的定义:@Component, @Repository, @Service @Controller

@Component是个泛化概念,可以用在任何层次。如果是web开发,

尽量用@Repository@Service @Constroller

 

(4) 不同数据类型的注入方式:

1.如果注入的为基本类型(8)或者String类型  value=""

   2.如果注入的为引用类型()  ref

   3.数组

    

 <property name="local">

           <array>

               <value>北京2</value>

               <value>北京3</value>

               <value>北京4</value>

               <value>北京5</value>

           </array>

        </property>

 

   4.集合list set集合

   

  <property name="addess">

            <list>

               <value>上海1</value>

               <value>上海3</value>

               <value>上海4</value>

               <value>上海5</value>

               <value>上海7</value>

            </list>

        </property>

 

   5.Map集合

     

 <property name="map">

           <map>

              <entry key="name" value="王五"/>

              <entry key="age" value="38"/>

              <entry key="dz" value="北京"/>

           </map>

        </property>

 

   

   6.Properties属性类

 

  

  <property name="pop">

           <props>

               <prop key="url" >jdbc:mysql://localhost:3306/mysql</prop>

               <prop key="user" >root</prop>

           </props>

      </property>

 

 

 

 

 

该方法在ApplicationContext读取配置文件就会创建bean的实例化,不需要考虑bean的作用域

 

该方法已经被淘汰,BeanFactory在启动的时候不会创建bean实例,而是在getBean()的时候才会创建实例

 

XML的代码:

<bean id = "student" class="com.zhiyou.han.Student">
        <property name="name" value="韩广学"></property>
        <property name="address">
            <array>
                <value>北京1</value>
                <value>北京2</value>
                <value>北京3</value>
                <value>北京4</value>
            </array> 
        </property>
        <property name="address1">
            <list>
                <value>北极1</value>
                <value>北极5</value>
                <value>北极4</value>
                <value>北极3</value>
                <value>北极2</value>
            </list>
        </property>
        <property name="map">
            <map>
                <entry key="15" value="哈哈1"></entry>
                <entry key="14" value="哈哈2"></entry>
                <entry key="13" value="哈哈3"></entry>
                <entry key="12" value="哈哈4"></entry>
                <entry key="11" value="哈哈5"></entry>
            </map>
        </property>
        <property name="teacher" ref="teacher"></property>
        <property name="properties">
            <props>
                <prop key="url">JDBC:myql</prop>
                <prop key="name">JDBC:name</prop>
                <prop key="pass">JDBC:password</prop>
            </props>
        </property>
    </bean>
    <bean id="teacher" class="com.zhiyou.han.Teacher">
        <constructor-arg name="name" value="成吉思汗"></constructor-arg>
    </bean>

 

  

posted @ 2018-10-10 21:17  韩若明瞳  阅读(919)  评论(0编辑  收藏  举报