Spring---入门

Spring:是一个分层的一站式轻量级开源框架。Hibernate-持久层的ORM框架,Struts2-Web层的MVC框架

一站式框架:有EE开发的每一层解决方案
      Web层:SpringMVC
      Service层:Spring的Bean管理,Spring的声明式事务
      Dao层:Spring的JDBC模板,Spring的ORM模块

1.初步了解IOC(控制反转)

       新建JavaWeb项目,导入jar包
       spring开发环境下载地址https://repo.spring.io/release/org/springframework/spring/   
       下载spring-framework-4.2.3.RELEASE-dist.zip并解压
       

       导入下列jar包
       

       新建UserDao接口以及他的实现类UserDaoImpl随便写个方法,只要能在控制台输出点东西就行。然后在src目录下新建applicationContext.xml文件,引入约束,在开发环境中的spring-framework-4.2.4.RELEASE-dist\docs\spring-framework-reference\html下的xsd-configuration.html中页面最底部,有一个例子

       引入约束之后,配置UserDao的bean
       

       编写测试类
       

2.IOC和DI

       IOC:控制反转,将对象的创建权反转给Spring
       DI:依赖注入,前提是必须有IOC环境,配置了相应的bean。

       当Spring在帮我们创建一个类的示例的时候,发现这个类需要某个属性,他会自动将属性设置到类里面,例如当UserDaoImpl中有一个属性username的时候,传统方式UserDao userDao=new UserDaoImpl(),并不能调用setUsername为其设置name,因为UserDao这个接口中没有这个方法,就无法设置username属性。当将类的创建教给Spring后,他会在创建的时候将该类需要的属性也一并注入到类中(需要给bean配置property标签),这就叫依赖注入(DI),此时输出的值是有username的

3.Spring的工厂类

    3_1.BeanFactory(老版本)

        BeanFactory---会在调用getBean的时候实例化Spring管理的类

    3_2.ApplicationContext(新版本)

        ApplicationContext---会在加载配置文件的时候实例化Spring管理的类
        ApplicationContext有两个实现类
             ClassPathXmlApplicationContext.java   :加载类路径下的配置文件(src路径下的配置文件)
             FileSystemXmlApplicationContext.java  :加载文件系统下的配置文件(项目之外,如本地磁盘上的配置文件)

4.Spring的配置

     属性注入的方式:

           普通注入:

           使用p名称空间注入:

           使用SpEL属性注入:注入普通属性时字符串需要加单引号,#{}中可以使用其他类的方法或属性,  比 如#{car2.name} , #{car2.getName()}

      

           注入List和Map

      

5.Spring的IOC注解方式

   入门

       1.在原来的基础上引入spring-aop-4.2.4.RELEASE.jar(一共5个Spring的包,两个日志文件的包)

       2.在src下的applicationContext.xml下引入context的约束,上面引入了bean的约束,bean的约束是最基本的约束,引入方式和上面一样,在html中找context的约束。

       3.在xml中配置要使用注解的包,包下的类就可以使用注解了
        

       4.添加注解

       5.注解方式的属性注入,这种方式不需要提供set方法,只需要在要注入的属性上面加入@Value("要注入的值"),如果有set方法就在set方法上面加上该注解

   注解详情

       1.@Component("id"):组件
            *_修饰一个类,将一个类交给Spring管理
            *_有三个衍生注解(目前功能和Component是一样的)
                   *Controller     :修饰web层
                   *Service         :修饰Service层
                   *Repository    :修饰Dao层

       2.属性注入的注解:
            *  @Value("value"):设置普通属性的值
            *  @Autowried:设置对象类型的属性的值,按照类型完成属性注入(也就是说Component设置的id在这个注解下时没用的,他会找到相应接口的实现类进行注入)
            *  @Resource(name="id"):设置对象类型的属性,按照名称完成注入,id的值必须与你所需对象的Component注解的id值一样

6.使用XML和注解整合开发(XML管理bean,注解实现属性注入)

       注意添加<context:annotation-config/>配置,原来的<context:component-scan base-package="xx.xxx"/>配置可以删除,这两个配置后者的功能中包括前者的功能,区别大致就是前者用于激活那些已经在spring容器里注册过的bean,后者不仅可以激活,还可以注册bean。详情请参考这篇博客:https://www.cnblogs.com/leiOOlei/p/3713989.html

猜你喜欢

转载自www.cnblogs.com/zy-Luo/p/11033214.html