Spring
Posted 小企鹅推雪球!
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring相关的知识,希望对你有一定的参考价值。
Spring框架概述
- spring是轻量级的开源JavaEE框架
- Spring可以解决企业应用开发的复杂性
- Spring有两个核心部分 :IOC和AOP
- IOC:控制反转,把创建对象过程交给Spring进行管理
- Aop;面向切面,不修改源代码进行功能增强
Spring框架特点
- 方便解耦,简化开发
- Aop编程支持
- 方便程序测试
- 方便和其他框架进行整合
- 方便进行事务操作
- 降低API开发难度
Spring-IOC容器详解
第一:什么是IOC?
- IOC是控制反转,减低代码之间的耦合度,将对象的创建和对象之间的调用的过程,交给Spring进行管理
第二:IOC底层原理
- XML解析,工厂模式和反射
- IOC解耦的步骤
-
第一步:创建XML配置文件,配置创建对象
-
第二步:有service 类和dao类,创建工厂类
-
IOC接口
- IOC思想基于IOC容器完成,IOC容器底层是对象工厂
- Spring提供了IOC容器实现的两种方式:
- BeanFactory:IOC容器最基本的实现方式,是Spring内部的使用接口,在开发中一般不使用
- ApplicationContext::BeanFactory接口的子接口,在开发中使用,功能更强大
- BeanFactory特点:在加载配置文件的时候,不会创建对象,在获取对象(使用对象时)才会创建对象
- ApplicationContext特点:在加载配置文件的时候就会将配置文件中对象进行创建
- ApplicationContext接口的主要实现类:
- File需要写配置文件的盘符路径
- Class表示配置文件的当前目录下的配置的路径(不用写全)
IOC操作-Bean管理
- 什么是Bean管理:指两个操作
- 第一Spring创建对象
- 第二Spring注入属性
- Bean管理操作的两种实现方式
- 基于xml配置文件实现Bean管理
- 基于xml方式创建对象
1. 在spring配置文件中,使用bean标签,标签里添加对应属性,可以实现对象创建
2. 在bean标签中的常用属性
1. id属性,表示当前对象的唯一标识
2. class属性:标识类的全路径,即包类的路径
3. 创建对象的时候会默认执行无参数构造方法完成对象创建 - 基于xml方式注入属性
- DI:是依赖注入,就是注入属性(set方法注入,有参构造参数注入)
-
第一种注入方式;使用set方法进行注入
/** * 演示使用 set 方法进行注入属性 */ public class Book { //创建属性 private String bname; private String bauthor; //创建属性对应的 set 方法 public void setBname(String bname) { this.bname = bname; } public void setBauthor(String bauthor) { this.bauthor = bauthor; } }
-
在spring配置文件配置对象创建,配置属性注入
<!--2 set 方法注入属性--> <bean id="book" class="com.atguigu.spring5.Book"> <!--使用 property 完成属性注入 name:类里面属性名称 value:向属性注入的值 --> <property name="bname" value="易筋经"></property> <property name="bauthor" value="达摩老祖"></property> </bean>
-
- DI:是依赖注入,就是注入属性(set方法注入,有参构造参数注入)
- 基于xml方式创建对象
- 基于xml配置文件实现Bean管理
以上是关于Spring的主要内容,如果未能解决你的问题,请参考以下文章
Spring boot:thymeleaf 没有正确渲染片段
What's the difference between @Component, @Repository & @Service annotations in Spring?(代码片段
spring练习,在Eclipse搭建的Spring开发环境中,使用set注入方式,实现对象的依赖关系,通过ClassPathXmlApplicationContext实体类获取Bean对象(代码片段
Spring Rest 文档。片段生成时 UTF-8 中间字节无效 [重复]
解决spring-boot启动中碰到的问题:Cannot determine embedded database driver class for database type NONE(转)(代码片段