简介
spring框架是由于软件开发的复杂性而创建的。Spring使用的是基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅仅限于服务器端的开发。从简单性、可测试性和松耦合性角度而言,绝大部分Java应用都可以从Spring中受益。
Spring的组成
-
Spring Core 核心容器
核心容器提供Spring框架的基本功能,Spring以bean的方式组织和管理java应用的各个组件和关系
使用BeanFactory来产生和管理Bean
-
SpringContext 应用上下文 一个配置文件,向Spring框架提供上下文信息
-
Spring Aop 面向切面编程
-
Spring Dao 数据库连接模块
-
Spring ORM 对象实体映射
-
Spring Web web应用程序模块
-
Spring Web mvc mvc模块
IOC理论推导
传统开发
- UserDao接口
- UserDaoImpl实现类
- UserService 业务接口
- UserServiceImpl 业务实现类接口
但用户的需求可能会影响我们原来的代码,我们需要根据用户的需求去修改源代码,如果代码量非常大,修改的位置很多
IOC原型
可以用Set进行动态实现值的注入
private UserDao userDao;
public void setUserDao(UserDao userDao){
this.userDao=userDao;
}
//在业务层调用的时候修改传进的对象,来获取对应的实现类
//动态实现值的注入,用户选择业务的对象
//设计者不用去管理对象的创建,降低了系统的耦合性
IOC本质
将对象的创建转移给第三方,获得依赖对象的方式反转了
Spring创造IOC的方式
-
默认使用无参构造器创建对象
若使用有参构造器创建对象
可使用构造器参数实现
-
使用Set方法注入参数
构造器参数实现
<constructor-arg type="java.lang.String" value="32"/>
<constructor-arg index="0" value="33"/> <!--下标默认从0开始-->
<constructor-arg name="name" value="34"/> 直接通过参数名设置
配置环境
导入依赖
<dependencies>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.2.8.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>5.2.8.RELEASE</version>
</dependency>
</dependencies>
HelloSpring
实体类
public class Hello {<