第1章初识Spring的基本应用-创新互联

起源:spring框架_百度百科

创新互联是一家专注于成都网站设计、成都做网站与策划设计,襄汾网站建设哪家好?创新互联做网站,专注于网站建设十余年,网设计领域的专业建站公司;建站业务涵盖:襄汾等地区。襄汾做网站价格咨询:18982081108

目录

1  Spring概述

1.1什么是Spring?

1.2 Spring框架的优点

1.3 Spring的体系结构

1.4 Spring的下载及目录结构

2  Spring的核心容器

2.1  BeanFactory

1.Spring容器负责控制程序之间的关系,而不是由程序代码直接控制。

2.提供了两种核心容器:BeanFactory和ApplicationContext。

2.2  ApplicationContext

1.BeanFactory的子接口,另一种常用的Spring核心容器。

2.不仅包含了BeanFactory的所有功能,还添加了对国际化、资源访问、事件传播等方面的持。

3.由org.springframework.context.ApplicationContext接口定义。

1.通过ClassPathXmlApplicationContext创建

创建该接口实例,通常采用两种方法,具体如下:

2.通过FileSystemXmlApplicationContext创建     

3  Spring的入门程序

4  依赖注入

4.1  依赖注入的概念

4.2  依赖注入的实现方式


1  Spring概述 1.1什么是Spring?

Spring是分层的JavaSE/EE full-stack 轻量级开源框架,以IoC(Inverse of Control 控制反转)和AOP(Aspect Oriented Programming 面向切面编程)为内核,使用基本的JavaBean来完成以前只可能由EJB完成的工作,取代了EJB的臃肿、低效的开发模式。

Spring框架是由于软件开发的复杂性而创建的。Spring使用的是基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅仅限于服务器端的开发。从简单性、可测试性和松耦合性角度而言,绝大部分Java应用都可以从Spring中受益。

EJB是Enterprise Java Beans技术的简称, 又被称为企业Java Beans。这种技术最早是由美国计算公司研发出来的。EJB技术的诞生标志着Java Beans的运行正式从客户端领域扩展到服务器领域。在电子商务领域运用EJB技术可以简化应用系统的开发, 这是由该技术的结构和特点所决定的

在实际开发中,通常服务器端在采用三层体系架构,分别为表示层(Web)、业务逻辑层(Service)、持久层(Dao), Spring对每一层都提供了技术支持。

1.2 Spring框架的优点

Spring具有简单、可测试和松耦合等特点。不仅可以用于服务器端开发,也可以应用于任何Java应用的开发中。

1.3 Spring的体系结构

Spring框架采用分层架构,它的功能要素被分成20个模块

注意:上图中灰色背景模块为所涉及的主要模块

1.Core Container(核心容器)

2.Data Access/Integration(数据访问/集成)

3.Web

4.其他模块

1.4 Spring的下载及目录结构

所需的jar包分为两个部分:Spring框架包和第三方依赖包。

1.Spring框架包

下载地址:https://repo.spring.io/release/org/springframework/spring/5.2.3.RELEASE/

使用xml配置方式

1、在IDEA中创建maven项目或模块

2、在pom.xml中加入spring-webmvc依赖。会把core、beans、context、expression、aop、web等的依赖都自动加载进来。

2.第三方依赖包

在使用Spring开发时,除了要使用自带的JAR包外,Spring的核心容器还需要依赖commons.logging的JAR包。

下载地址:http://commons.apache.org/proper/commons-logging/download_logging.cgi

2  Spring的核心容器 2.1  BeanFactory 1.Spring容器负责控制程序之间的关系,而不是由程序代码直接控制。 2.提供了两种核心容器:BeanFactory和ApplicationContext。

BeanFactory容器

创建BeanFactory实例时,需提供Spring所管理容器的详细配置信息。通常采用XML文件形式来管理,其加载配置信息:

BeanFactory beanFactory=new XmlBeanFactory(new FileSystemResource("F: /applicationContext.xml"));

这种加载方式在实际开发中并不多用,了解即可。

2.2  ApplicationContext 1.BeanFactory的子接口,另一种常用的Spring核心容器。 2.不仅包含了BeanFactory的所有功能,还添加了对国际化、资源访问、事件传播等方面的特点。 3.由org.springframework.context.ApplicationContext接口定义。 1.通过ClassPathXmlApplicationContext创建  创建该接口实例,通常采用两种方法,具体如下:

ApplicationContext applicationContext = new

ClassPathXmlApplicationContext(String configLocation);

从类路径classPath中寻找指定的XML配置文件,找到并装载完成ApplicationContext的实例化工作。

2.通过FileSystemXmlApplicationContext创建     

ApplicationContext applicationContext =new FileSystemXmlApplicationContext(String configLocation);

从指定的文件系统路径(绝对路径)中寻找指定的XML配置文件,找到并装载完成ApplicationContext的实例化工作。这个需要具体的路径

在Java项目中,通过ClassPathXmlApplicationContext类来实例化ApplicationContext容器。

而在Web项目中,ApplicationContext容器的实例化工作会交由Web服务器来完成。

Web服务器实例化ApplicationContext容器时,通常会使用ContextLoaderListener来实现,需web.xml中添加代码:

contextConfigLocationclasspath:spring/applicationContext.xml org.springframework.web.context.ContextLoaderListener

1.创建Spring容器后,就可以获取Spring容器中的Bean。

2.Spring获取Bean的实例通常采用以下两种方法:

1.Object getBean(String name);

根据容器中Bean的id或name来获取指定的Bean,获取之后需要进行强制类型转换。

2.T getBean(ClassrequiredType);

根据类的类型来获取Bean的实例。由于此方法为泛型方法,因此在获取Bean之后不需要进行强制类型转换。

3  Spring的入门程序

  1.在Eclipse中,创建一个名为chapter04的Web项目,将Spring的4个基础包以及commons-logging的JAR包复制到lib目录中,并发布到类路径下。

XML文档,内容可从参考手册上复制最新版本(1. The IoC container)spring-framework-5.2.3.RELEASE/docs/spring-framework-reference/core.html#beans-factory-metadata

2.在src目录下,创建一个com.itheima.ioc包,并在包中创建接口UserDao,代码如下:

package com.itheima.ioc;

public interface UserDao {public void say();}

  3.在com.itheima.ioc包下,创建UserDao接口的实现类UserDaoImpl,代码如下:

package com.itheima.ioc;

public class UserDaoImpl implements UserDao {

public void say() {

System.out.println("userDaosay hello World !");

}}

4.在src目录下,创建Spring的applicationContext.xml配置文件,并在配置文件中创建一个id为userDao的Bean。

5.在com.itheima.ioc包下,创建测试类TestIoC,其代码:

package com.itheima.ioc;
import org.springframework.context.ApplicationContext;
import  org.springframework.context.support.ClassPathXmlApplicationContext;
    public class TestIoC {
    public static void main(String[] args) { 
    //初始化Spring容器,并加载配置文件
       ApplicationContext applicationContext = new  ClassPathXmlApplicationContext("applicationContext.xml"); 
     //通过Spring容器获取userDao实例(即Java对象),
         UserDao userDao = (UserDao)       
         applicationContext.getBean("userDao");
     //调用实例中的say()方法
         userDao.say();
    }
}

4  依赖注入 4.1  依赖注入的概念

DI(Dependency Injection,依赖注入)。它与控制反转(IoC)的含义相同,只是它们是从两个角度描述的同一个概念。

IoC(控制反转):在Spring框架中,对象的实例不再由调用者来创建,而是由Spring容器来创建,程序之间的关系由Spring容器控制,而不是调用者的程序代码。这样,控制权由应用代码转移到了Spring容器,控制权发生了反转。

DI(依赖注入):从Spring容器的角度来看,Spring容器负责将被依赖对象赋值给调用者的成员变量,这相当于为调用者注入了它依赖的实例,这就是Spring的依赖注入。

4.2  依赖注入的实现方式

1.使用setter方法实现依赖注入

1.在com.itheima.ioc包中,创建接口UserService,在接口中编写一个say()方法。

package com.itheima.ioc;
public interface UserService {
public void say();
}

2.在com.itheima.ioc包中,创建UserService接口的实现类UserServiceImpl,在类中声明userDao属性及setter方法。

package com.itheima.ioc;
public class UserServiceImpl implements UserService {
private UserDao userDao;
public void setUserDao(UserDao userDao) {
this.userDao = userDao;
}
public void say() {
this.userDao.say();
System.out.println("userService say hello World !");
}
}

3.在配置文件applicationContext.xml中,创建一个id为userService的Bean,该Bean用于实例化UserServiceImpl类的信息,并将userDao的实例注入到userService中。

4.在com.itheima.ioc包中,创建测试类TestDI,来对程序进行测试。

package com.itheima.ioc;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.support.ClassPathXmlApplicationContext;
 public class TestDI {
     public static void main(String[] args){ 
        ApplicationContext applicationContext = new    
               ClassPathXmlApplicationContext("applicationContext.xml"); 
        UserService userService=(UserService)    
               applicationContext.getBean("userService"); 
	  userService.say();
	}
 }

5.执行程序后,控制台的输出结果如图所示。

小结:

本讲主要介绍了Spring框架入门的一些基础知识,包括Spring的概念、优点、体系结构、核心容器、依赖注入等,同时通过一个入门程序讲解了Spring的基本使用。

通过本讲的学习,同学们可以对Spring框架及其体系结构有一个初步的了解,能够初步的掌握Spring框架的使用,并能够理Spring框架中IoC和DI的思想,掌握属性setter方法注入的实现。

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


网站栏目:第1章初识Spring的基本应用-创新互联
当前路径:http://myzitong.com/article/dhpedj.html