第01讲 Spring概述
第01讲 Spring概述
【】项目开发前环境准备
- 安装JDK8 (8u172或8u171均可)
- 安装Maven354,在Maven安装目录下创建类库文件存储目录:m2
- 安装Eclipse4.8.0
- 安装Tomcat9
- 在Eclipse配置Tomcat9
- Eclipse配置Maven
引入ojbc8方法:build path,new user library(oracledriver),add jars(ojbc8.jar)
Deployment assembly 将oracledriver放在WEB-INF/lib下。
【】Maven
- 管理Java项目使用jar类库的框架。
- 使用XML方式管理需要的jar类库。
【】eclipse创建Web3.1
详见《Eclipse使用Maven创建Web31项目》
拷贝java包,jsp(其中jsp只需要拷贝下图蓝色部分)
上图报错是因为maven项目还没引入mvnrespository的jstl和taglibs
引入pom依赖的类库:将《POM依赖的类库.txt》 添加到pom.xml中,保存则直接下载到.m2文件夹。
【】Spring类库的引入
- Spring Core
<!-- https://mvnrepository.com/artifact/org.springframework/spring-core -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>5.0.7.RELEASE</version>
</dependency>
- Spring Context
<!-- https://mvnrepository.com/artifact/org.springframework/spring-context -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.0.7.RELEASE</version>
</dependency>
- Spring Bean
Spring Beans
<!-- https://mvnrepository.com/artifact/org.springframework/spring-beans -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>5.0.7.RELEASE</version>
</dependency>
- Spring Web
<!-- https://mvnrepository.com/artifact/org.springframework/spring-web -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>5.0.7.RELEASE</version>
</dependency>
- Spring Web MVC
- Spring AOP
- Spring ORM
- Spring Transaction
- Spring Context Support
- Spring Aspects
【】Spring概念
Spring是基于Java的轻量级的各层对象管理和协调框架。
【】Spring组成(20个模块)
- Core核心模块:
- 管理Java对象的IoC容器:
【】Spring入门基础
- 引入spring框架的jar文件OK。
- 创建spring管理对象的配置文件:content.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"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="employeeDao" class="com.neusoft.oa.hr.dao.impl.EmployeeDaoImpl" />
</beans>
- 连接到Spring的容器上:
在业务实现类中,获取对象。
Private IEmployeeDao employeeDao = null;
Public EmployeeServiceImpl(){
ApplicationContext ctx=new ClassPathXmlApplicationContext("context.xml");new实现类创建对象
employeeDao=ctx.getBean("employeeDao",IEmployeeDao.class);
}
【】Java应用取得对象(IoC内)的方式
- 直接主动方式:
A a=new A();
- 间接主动式:(工厂)
IEmployeeDao employeeDao=DaoFactory.createEmployeeDao();
- 间接查询式(查找式)
ApplicationContext ctx=new ClassPathXmlApplicationContext("context.xml");
employeeDao=ctx.getBean("employeeDao",IEmployeeDao.class);
- 间接被动模式 (Inverse of Control )
对象不是自己主动创建,而是有其他对象送给你。其他对象称为IoC容器。
Spring的核心就是IoC容器。
protected void doGet(HttpServletRequest request, HttpServletResponse response){
}
【】Inverse of Control
反向控制:指对象的获取方式由主动转为被动。
IoC也可以称为依赖注入(Dependency Injection)-DI
DI是IoC的实现方式。
【】Spring 实现DI的方式
- Set注入方式
需要提供一个类的Field变量,再提供一个setXxx方法。
private IEmployeeDao employeeDao=null; //Field
//properties 属性注入模式
public void setEmployeeDao(IEmployeeDao employeeDao) {
this.employeeDao = employeeDao;
}
在Spring IoC容器的配置文件中:context.xml ,
通过property标签实现set方式的依赖注入。
<?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:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd">
<bean id="employeeDao" class="com.neusoft.oa.hr.dao.impl.EmployeeDaoImpl"/>
<!-- set方式依赖注入-->
<bean id="employeeService" class="com.neusoft.oa.hr.service.impl.EmployeeServiceImpl" >
<property name="employeeDao" ref="employeeDao"></property>
</bean>
</beans>