十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
起源: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 依赖注入的实现方式
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中添加代码:
contextConfigLocation classpath: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.
根据类的类型来获取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元起,快前往官网查看详情吧