Spring IOC

  • 一、spring
    • spring的核心是控制反转(ioc)和面向切面编程(aop),spring是一个分层的一站式轻量级开源框架 ioc讲将我们之前的new的事情交给ioc来管理 aop:jdk的动态代理
    • 优点:
      • 1.方便解耦,简化开发,spring是一个大工厂,将所有对象创建和依赖关系的维护交给spring管理 ioc的作用
      • 2.aop面向切面编程,对程序进行权限拦截、运行监控
      • 3.声明事务的支持,只需要通过配置就可以完成对事务的管理,无需手动编程
      • 4.方便程序的测试,spring对junit4支持,方便注解测试
      • 5.spring不排斥各种优秀的开源框架
      • 6.降低javaEE API的使用难度,提供了封装,是这些API应用难度大大降低
  • 二、IOC
    • 定义:控制反转,将对象的创建权力反转给spring框架 使用ioc解决程序耦合性高的问题 spring工厂读取配置文件 DI是依赖注入,动态的将依赖对象注入到Bean组件中
    • 创建maven的Java项目
      • 建项目 导依赖
      • 编写接口和实现类
        • service放业务层代码 controller放表现层代码 mapper/dao放持久层代码(持久层和数据库交互的接口) domain/entity/pojo放实体类 untils放工具类(比如放逆向工程) resources中放mapper--->.xml文件
        • service-》userservice接口(接口不做实现),在service中还有一个包是impl,在这个包里面实现方法
        • 需要在test中测试impl的方法
          • 这个是面向对象的方式,最原始的方式

          • ioc:实现的两种方式
            • 1.applicationcontext.xml的方式,有xml文件就要有约束 <beans>约束信息,里面支持写spring的配置文件

              • 首先要写想要ioc管理的类 用<bean>写 ,bean就是一个类,bean里面要给的是实现类不是接口

              • 然后在测试类中加载文件.xml文件 classpath是相对路径,现在是spring创建对象,这个时候肯定比new强

            • 2.file的形式,传的时候传全路径(.xml的全路径) 输出结果是一样的只是换了一种加载方式

  • 三、DI依赖注入 就是赋值 实现ioc的技术是DI注入 autowir
    • 赋值的方式1:
      • 注入值在impl中注入值定义变量 生成getter setter方法
      • 然后可以在test中获取对象 获取到值 ref是类注入

    • 赋值的方式2:利用构造器
      • 构造器+index

    • 注入方式3:
      • 构造器+name

    • 注入方式4:集合属性 注意properties:是一个properties的对象是一种文件类型书写格式是key-value 比如log4j.properties不会涉及到对象 map中会涉及到对象 如果aaa涉及到对象 把value换成对象类型,

    • 总结:1.set方法的注入 2.构造器注入(注意构造器有两种方式 index name)
  • 四、多配置文件形式
    • 在src的目录下又多创建了一个配置文件,现在是两个核心的配置文件,加载方式有两种
      • 1.主配置文件中包含其他的配置文件:<import resource="applicationContext2.xml"/>
      • 2.在工厂创建的时候直接加载多个配置文件:

  • 五、spring ioc的注解(半注解)方式 (上一个是配置文件的方式)
    • 一个数据库的表对应一个实体类
    • 全部靠注解实现 依赖没有改变
    • 编写接口和实现类
    • 注解@Compent("us") 在配置文件写bean标签是一个意思 作用:把当前类使用ioc容器进行管理,如果没有指定名称,默认使用类名,首字母小写或者自己指定名称

    • 1.在.xml中加入这一个配置,写最大的包即可

    • 2.在dao层中,@Autowired按照类型注入DI注入实现
    • comonent IOC的注解
  • 六、常用的注解 就是将该类交给spring去管理
    • bean管理的5个注解
      • @Component普通类
      • @controller:表现层
      • @service:业务层
      • @Repository持久层
      • bean配置里面的
    • 依赖注入常用注解
      • @value 用于注入普通类型(string)
      • @Autowired默认按类型进行自动装配(引用类型)

  • 七、纯注解的方式
    • 替换掉所有的配置文件,但是要有配置类
      • 核心不是这个类是在这个类的注解 @Configuration表明这是一个配置类
      • 然后还有扫描指定的包名 configuration
      • 可以导入多个配置类

    • test实现类读取配置文件annotation 里面传的是类名
      • 传的是类名,剩下的一模一样

    • 这里只会new 1次 @Bean一般会用第三方的比如收datasource

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值