Spring
第一章
1、理解spring的基本概念
2、配置spring的环境
3、编写基于spring的应用
1、什么是spring框架
spring:它是一个轻量级的J2EE框架,它主要用于降低java企业级应用程序的开发难度
J2EE: java的企业级应用程序
【重要】:其他技术只要与spring一起结合使用,就会变的比较简单
从事java开发,公司中一定会使用spring框架
2、idea配置spring环境
1、配置schema文件,再编写xml文件会有提示信息
schema文件,就是xml的约束文件,用于限制xml中编写的内容
a、将这一组schema文件复制到某一个目录中(不要有中文与空格)这个目录不要改动
b、在idea中配置schema
2、配置spring核心配置文件 applicationContext.xml的模板
模板代码
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.2.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.2.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.2.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.2.xsd">
</beans>
3、spring的核心概念
1、DI-------------依赖注入
2、IOC------------控制反转
3、AOP------------面向切面编程(面向方面编程)
4、spring的编程思想
【重点】:组件与组件应该进行低耦合 (一个组件不要过度依赖另一个组件)
例如:公司里有一个员工非常厉害,有他在公司的大事小事他都可以搞掂,但如果他离开公司所有大小事都会全部瘫痪,这种情况就属于过度依赖(高耦合),这样的情况并不好
在使用spring之前
在java代码中,一个组件要访问另一个组件的方法,我们一般都是直接实例化,这种写法,就属于一种高耦合的写法(sppring不提倡)
例如:
//数据访问层
public class Dao{
public void add(){
}
}
//业务层
public class Service{
//如果service类中要访问Dao类的方法,以前我们是直接实例化(但这是一种高耦合写法,并不提倡)
private Dao dao = new Dao();
public void test(){
dao.add();
}
}
使用spring之后
pring提倡的一种思想是:一个组件需要另一个组件不要直接实例化,而是通过spring产生
注意:实体类是例外的,它是可以直接实例化的
版本分类
spring 1.x
spring 2.x
spring 3.x
spring 4.x
spring 5.x-------------------------我们使用这个版本
spring 6.x
5、第一个spring应用
Demo---->Service-------->Dao
步骤
1、创建Maven的java工程
新增resources目录
2、导入Spring的依赖
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.1.6.RELEASE</version>
</dependency>
3、在resources目录下创建spring的主配置文件 applicationContext.xml
4、编写InfDao数据访问层
public class InfDao {
public void add(){
System.out.println("向数据库中添加了一条数据");
}
}
5、在applicationContext.xml文件中注册dao
<bean id="infDao" class="org.java.dao.InfDao"/>
6、编写InfService类
public class InfService {
//声明InfDao
private InfDao dao;
//声明该属性的set方法,用于接收spring产生的InfDao对象的实例
public void setDao(InfDao dao) {
this.dao = dao;
}
public void addData(){
dao.add();
}
}
7、在applicationContext.xml文件中注册service, 并且注入它需要的对象
<bean id="infService" class="service.InfService">
<!--注入它需要的对象-->
<property name="dao" ref="infDao"/>
</bean>
8、编写测试类,进行测试
public class Demo {
public static void main(String[] args) {
//创建spring容器
ApplicationContext cxt =
new ClassPathXmlApplicationContext("applicationContext.xml");
//通过cxt容器获得对象
InfService infService = (InfService) cxt.getBean("infService");
infService.addData();
}
}
第二章
1、spring的基本应用
2、理解spring中的一些核心概念
3、spring注解的使用
4、spring整合mybatis
1、spring的基本应用
就是上一章的最后一个案例
2、spring核心概念
1、DI-------------依赖注入
2、IOC------------控制反转
3、AOP------------面向切面编程(面向方面编程)
1、DI-----依赖注入
【定义】
类中属性的初始化,依赖于spring容器注入的参数才可以完成初始化操作,我们就称为“依赖注入”
【为什么要用依赖注入】
依赖注入是采用一种组件化的思想,将组件创建与使用强制分离,这样可以降低组件之间的耦合度(实现低耦合)
【目的】
依赖注入的目的:实现解耦合,降低组件之间的耦合度
2、IOC----控制反转
【对比】
以前没有spring的时候我们需要用一个对象的方法时,我们可以自己创建对象实例
有了spring以后,需要对象实例时,只能由容器创建,然后注入进来
【定义】
对象的创建方式由自己主动创建变为由spring容器创建然后注入,这种创建对象的方式改变,就称为:控制反转
【含义】
控制反转:是指创建对象方式由自己主动创建变为由spring容器创建,这一个过程中控制权发生改变
3、面向接口编程
面向接口编程的好处:
1、隐藏代码实现细节
2、更换底层业务代码很方便
实际开发中
在开发中,一般业务层(service)与数据访问层(dao)都需要编写接口
dao接口: org.java.dao.InfDao
dao接口的实现类: org.java.dao.impl.InfDaoImpl
service接口: org.java.service.InfService
service接口的实现类:org.java.service.impl.InfServiceImpl
4、spring注入类型分类
为了便于理解,此时用的是first的案例
1、对象的注入–ref
dao的代码
public void add(){
//对象的注入
System.out.println("添加成功");
}
service的代码
//声明dao
private firstDao fdao;
//声明该属性的set方法,用于接收spring产生的firstDao对象的实例
public void setFdao(firstDao fdao) {
this.fdao = fdao;
}
由于声明的是一个fdao对象,那么配置文件中
<bean id