- 一、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强
- 首先要写想要ioc管理的类 用<bean>写 ,bean就是一个类,bean里面要给的是实现类不是接口
- 2.file的形式,传的时候传全路径(.xml的全路径) 输出结果是一样的只是换了一种加载方式
- 1.applicationcontext.xml的方式,有xml文件就要有约束 <beans>约束信息,里面支持写spring的配置文件
- 这个是面向对象的方式,最原始的方式
- 三、DI依赖注入 就是赋值 实现ioc的技术是DI注入 autowir
- 赋值的方式1:
- 注入值在impl中注入值定义变量 生成getter setter方法
- 然后可以在test中获取对象 获取到值 ref是类注入
- 赋值的方式2:利用构造器
- 构造器+index
- 构造器+index
- 注入方式3:
- 构造器+name
- 构造器+name
- 注入方式4:集合属性 注意properties:是一个properties的对象是一种文件类型书写格式是key-value 比如log4j.properties不会涉及到对象 map中会涉及到对象 如果aaa涉及到对象 把value换成对象类型,
- 总结:1.set方法的注入 2.构造器注入(注意构造器有两种方式 index name)
- 赋值的方式1:
- 四、多配置文件形式
- 在src的目录下又多创建了一个配置文件,现在是两个核心的配置文件,加载方式有两种
- 1.主配置文件中包含其他的配置文件:<import resource="applicationContext2.xml"/>
- 2.在工厂创建的时候直接加载多个配置文件:
- 在src的目录下又多创建了一个配置文件,现在是两个核心的配置文件,加载方式有两种
- 五、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默认按类型进行自动装配(引用类型)
- bean管理的5个注解
- 七、纯注解的方式
- 替换掉所有的配置文件,但是要有配置类
- 核心不是这个类是在这个类的注解 @Configuration表明这是一个配置类
- 然后还有扫描指定的包名 configuration
- 可以导入多个配置类
- test实现类读取配置文件annotation 里面传的是类名
- 传的是类名,剩下的一模一样
- 传的是类名,剩下的一模一样
- 这里只会new 1次 @Bean一般会用第三方的比如收datasource
- 替换掉所有的配置文件,但是要有配置类
Spring IOC
最新推荐文章于 2025-07-23 09:42:23 发布