zoukankan      html  css  js  c++  java
  • 第一章 Spring的基本应用

    本章思考题:

    1.请简述Spring框架的优点

    2.简述什么是Spring的IOC和DI.

    一.IOC?

    IOC(控制反转):Spring就是一个大工厂,将所有对象的创建和依赖关系都交给Spring容器管理.

    下面简要介绍IOC的"hello world"代码,按以下三步进行:

    1.导入jar包  2.写配置文件(ApplicationContext.xml)  3.从spring容器中获取对象

     二.DI?

    DI(依赖注入):spring创建对象A时,会将对象A所依赖的对象B也创建出来,并自动注入到对象A中。

    依赖:(has a) 有一个的意思,比如类A中有一个类B,那么就说A依赖B。继承,实现(is a)

              

    下面是实例:

    1.导入jar包   2.创建A类和B类   3.配置文件  4.容器中获取对象  5.结果

            

        

     三.依赖注入的实现方式

    构造方法注入

    属性setter方法注入

    普通方法

    集合类

    <bean id="collect" class="com.zlj.Collect">
            <property name="clist">
                <list>
                    <value>zoulingjin</value>
                    <value>20</value>
                </list>
            </property>      
            <property name="cset">
                <set>
                    <value>xxx1</value>
                    <value>xxx2</value>
                </set>
            </property>    
            <property name="cmap">
                <map>
                    <entry key="z001" value="zoulingjin"></entry>
                    <entry key="z002" value="kai"></entry>
                </map>
            </property>    
            <property name="cproperties">
                <props>
                    <prop key="x">y</prop>
                    <prop key="a">b</prop>
                    <prop key="w">m</prop>
                </props>
            </property>
        </bean>

    四.依赖Annation(注解)实现依赖注入

    注解格式:@xxx

    使用注解:必须对使用注解的地方进行扫描,不然注解没用。而扫描需要做两件事

       1、添加名称空间,

          在我们找配置文件中约束的位置那:spring-framework-3.2.0.RELEASEdocsspring-framework-referencehtmlxsd-config.html 找到context的名称空间。

        

                 

        2、扫描指定的目录,

            

        注解:

        1、@Component  替代  <bean id="" class=""> 可以配置任意bean,在所在类上面添加该注解即可,

              @Component("userId") userId相当于bean中的id属性值

               

        2、  这三个就跟使用@Component是一样的,但是为了更好的体现三层架构,就有了这三个注解

             @Controller  修饰web层中的类。

             @Service  修饰service层的类

             @Repository  修饰dao层的类

                两种方式,一种不声明名称,一种声明名称

                @Controller("xxx")  @Controller  

                如果声明了名称,那么在别的地方引用的话,就可以使用@Autowired或@Autowired与@Qualifier的组合 或直接使用@Resource按照名称注入

                如果没有声明名称,那么在别的地方引用的话,只能使用@Autowired 来进行注入

        3、属性注入

             普通属性

                @Value    @Value("")  给普通属性注入属性值

              引用属性

                  @Autowired  按默认类型进行注入

                  @Qualifier("") 按照名称注入  

                如果使用了@Qualifier这个注解,那么就需要两个一起使用才能生效。如果只使用@Autowired,那么写不写@Qualifier都可以

              引用属性

                @Resource  直接按照名称注入,与上面两个注解一起使用是等效的  

                    @Resource(name="xxx")

                 

        4、使用

                           

        5、其他注解

             @Scope("prototype")  作用域注解(spring帮我们创建的bean实例的作用域,在下面会讲解到)

             @PostConstruct  修饰初始化    

             @PreDestory  修饰销毁

    五.Bean的作用域

    简要讲下singleton(单例)和prototype(原型),一般bean的scope默认值为singleton

    singleton:在spring容器中永远只有一个实例,无论多少个bean引用.他始终指向同一个对象.

    prototype:每次通过spring容器获取定义的bean是,都将创建一个新的Bean实例

     

                        

  • 相关阅读:
    Selenium2学习(十四)-- 加载Firefox配置
    Selenium2学习(十三)-- JS处理滚动条
    Selenium2学习(六)-- 定位神器CSS
    Selenium2学习(十二)-- alertconfirmprompt
    Selenium2学习(十一)-- select下拉框
    poj 2155 Matrix 二维树状数组
    洛谷 3368 树状数组 模板2
    洛谷 3374 树状数组 模板
    poj 3468 树状数组 区间修改 区间求和
    hdu 1556 树状数组 改段求点
  • 原文地址:https://www.cnblogs.com/zoulingjin/p/9487086.html
Copyright © 2011-2022 走看看