第01讲 Spring概述

第01讲 Spring概述

 

【】项目开发前环境准备

  1. 安装JDK8 (8u172或8u171均可)
  2. 安装Maven354,在Maven安装目录下创建类库文件存储目录:m2
  3. 安装Eclipse4.8.0
  4. 安装Tomcat9
  5. 在Eclipse配置Tomcat9
  6. Eclipse配置Maven

 

 

引入ojbc8方法:build path,new user library(oracledriver),add jars(ojbc8.jar)

Deployment assembly 将oracledriver放在WEB-INF/lib下。

【】Maven

  1. 管理Java项目使用jar类库的框架。
  2. 使用XML方式管理需要的jar类库。

 

【】eclipse创建Web3.1

详见《Eclipse使用Maven创建Web31项目》

拷贝java包,jsp(其中jsp只需要拷贝下图蓝色部分)

 

第01讲 Spring概述第01讲 Spring概述

上图报错是因为maven项目还没引入mvnrespository的jstl和taglibs

引入pom依赖的类库:将《POM依赖的类库.txt》 添加到pom.xml中,保存则直接下载到.m2文件夹。

【】Spring类库的引入

  1. 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>

 

  1. 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>

  1. 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>

 

 

  1. 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>

  1. Spring Web MVC
  2. Spring AOP
  3. Spring ORM
  4. Spring Transaction
  5. Spring Context Support
  6. Spring Aspects

 

【】Spring概念

Spring是基于Java的轻量级的各层对象管理和协调框架。

 

【】Spring组成(20个模块)

第01讲 Spring概述

  1. Core核心模块:
  1. 管理Java对象的IoC容器:

 

【】Spring入门基础

  1. 引入spring框架的jar文件OK。
  2. 创建spring管理对象的配置文件:content.xml第01讲 Spring概述

<?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>

 

  1. 连接到Spring的容器上:

在业务实现类中,获取对象。

 Private IEmployeeDao employeeDao = null;

 Public EmployeeServiceImpl(){

ApplicationContext ctx=new ClassPathXmlApplicationContext("context.xml");new实现类创建对象

employeeDao=ctx.getBean("employeeDao",IEmployeeDao.class);

 

}

 

【】Java应用取得对象(IoC内)的方式

  1. 直接主动方式:

A a=new A();

 

  1. 间接主动式:(工厂)

IEmployeeDao employeeDao=DaoFactory.createEmployeeDao();

 

  1. 间接查询式(查找式)

ApplicationContext ctx=new ClassPathXmlApplicationContext("context.xml");

employeeDao=ctx.getBean("employeeDao",IEmployeeDao.class);

 

  1. 间接被动模式 (Inverse of Control )

对象不是自己主动创建,而是有其他对象送给你。其他对象称为IoC容器。

Spring的核心就是IoC容器。

 

protected void doGet(HttpServletRequest request, HttpServletResponse response){

 

}

 

【】Inverse of Control

反向控制:指对象的获取方式由主动转为被动。

IoC也可以称为依赖注入(Dependency Injection)-DI

 

DI是IoC的实现方式。

 

 

 

 

 

 

【】Spring 实现DI的方式

  1. 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>