zoukankan      html  css  js  c++  java
  • Spring学习

    Spring是一站式轻量级的开源框架

      一站式:框架很“全面”且整合度高

          (1)Spring在javaee三层结构中,每一层都提供不同的解决方案

            web层:SpringMVC

            service层:IOC

            dao层:JdbcTemplate

      轻量级:该框架不需要依赖其他东西就可以直接使用

      开源:免费提供源代码

    Spring的两大核心部分即IOC和AOP

      IOC:控制反转,降低耦合性,对象的创建不是通过new,而是都交给了Spring的xml配置文件(src下)

      AOP:面向切面,程序扩展功能不是通过修改源代码来实现的 

    (一)IOC

       (1)IOC操作两部分:①IOC的配置文件 ②IOC的注释方式

    ①IOC配置文件方式:

       (1)IOC底层原理:

          ①创建xml的配置文件,配置要创建的对象类

            <bean id="" class=""></bean>

          ②创建工厂类,使用dom4j解析xml配置文件+反射技术

            ▲ 使用dom4j解析xml文件,通过id值,得到id值对应的class属性值

            ▲ 通过反射创建该属性值的对象,然后通过方法返回该对象即可

       IOC的实现:用反射机制加上工厂及其配置文件来完成的

       (2)bean标签的常用属性

           ①id:起名称,id的属性值不能包含特殊符号($,&,#,_等)

           ②class:创建对象所在的类的路径

           ③name:功能和id的一样,但是区别是id的属性值不能包含特殊符号($,&,#,_等)而name的属性值可以包含      

           ④scope:设置bean的作用范围

              singleton:创建对象时是单例(默认)

              prototype:创建对象时是多实例的

      ♥ (3)注入属性(常用set方法注入)

          最重点的是注入对象类型属性,所以仅介绍此类型的属性注入:

            ▲在要被注入的类中设置该对象属性的set方法 

            ▲创建配置文件,引入schema约束

            <bean id="" class="">

              <!-- ref:要注入的对象那个类型创建时的id值-->

              <property name="" ref=""></property>                 (此处注意:要是注入一般类型,ref就是value <property name="" value="">)

            </bean>

        (4)IOC和DI区别:

           IOC:控制反转,把对象的创建交给spring的配置文件处理

           DI:依赖注入,相类里面的属性设置属性值 

           两者关系:依赖注入不能单独存在,需要在IOC的基础之上完成操作 

    ②IOC的注解方式

        (1)注解:代码中一些特殊的标记,使用标记可完成功能

            注解写法:@注解名称(value=属性值)

           注解使用:方法上,类上面,属性上面

          注解可创建对象,可注入属性

        (2)使用注解准备:

           ▲导入注解要用的jar包:spring-aop-4.2.4-RELEASE.jar

           ▲创建类,创建方法

           ▲创建xml配置文件,引入schema约束,此时约束有beans和context

           ▲用了注解就不用在配置文件中配置<bean>标签创建对象了,只需要开启注解扫描即可 

             <context:component-scan base-package=" "></context:component-scan>

             base-package:com/com.spring/com.spring.User(这里的包名是自己建的) 

        (3)是用注解创建对象:

           在要创建对象的类上面使用注解即可创建对象

            例:@Component(value="user")

           spring中提供了三个@Component的衍生注解,目前这四个注解的功能是一样的

              @Controller(value="user"):WEB层

              @Service(value="user"):业务层

              @Pesponsitory(value="user"):持久层

           补充:@Scope(value="prototype/singleton")    对象多实例还是单实例 

        (4)用注解注入属性:(使用注解不需要set方法)

           @Autowired  :自动注入

           @Resource(name=""):name指要注入的对象名称

           在要注入的属性上面用:

            例如:

               @Autowired

               private UserDao userDao;

            (@AutoWired会根据下面的属性类型去类里面找实例化好的对象),例:去UserDao类里去找创建好的对象

               @Resource(name="userDao")

               private UserDao userDao;

            (@Resource(name="") 会去UserDao类里根据name去找该对象)

      IOC总结:一般对象的创建用配置文件配置,注入属性用注解的方法

     (二)AOP

  • 相关阅读:
    云计算 备忘录
    python 备忘录
    Linux 备忘录
    appium自动化的一个实例
    appium环境的搭建
    四则运算2单元测试
    四则运算2
    四则运算2程序设计思路
    上课未及时完成的原因
    随机生成30道四则运算题程序设计
  • 原文地址:https://www.cnblogs.com/rgever/p/8487937.html
Copyright © 2011-2022 走看看