IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> Spring快速入门——从理论到第一个程序详细总结 -> 正文阅读

[Java知识库]Spring快速入门——从理论到第一个程序详细总结

一、spring简介

1、什么是spring

概念:Spring 是分层的 Java SE/EE 应用 full-stack 轻量级开源框架,以 loC ( Inverse Of Control:反转控制)和 AOP (Aspect Oriented Programming :面向切面编程)为内核。
提供了展现层SpringMVC和持久层Spring JDBCTemplate 以及业务层事务管理等众多的企业级应用技术,还能整合开源世界众多著名的第三方框架和类库,逐渐成为使用最多的JavaEE企业应用开源框架。

IOC:Spring的ioc容器作为spring的核心,IOC容器是一个具有DI(依赖注入:三种方式,接口注入,setter注入,Construct(构造方法)注入)功能的容器,负责实例化、定位、配置应用程序中的对象及建立这些对象间的依赖。通俗而言:就是将对我们对象的管理权交给框架,而不是程序员手动实现对象的实例化,控制反转就是这个。
AOP:面向切面编程,通俗理解就是,将一些与业务逻辑不相关,但是又对于系统结构很重要的一些重复出现的代码片段抽取出来封装为一个切面,注入到各个业务逻辑中去。比如:缓存,事物,日志打印等

2、简单理解:

为解决企业开发复杂性的一种轻量级开源框架。spring的简单分层为
web层,service层,dao层
在这里插入图片描述

3、spring 的优势

1)方便解耦,简化开发
通过Spring 提供的loC容器,可以将对象间的依赖关系交由Spring进行控制,避免硬编码所造成的过度耦合。用户也不必再为单例模式类、属性文件解析等这些很底层的需求编写代码,可以更专注于上层的应用。
2)AOP编程的支持
通过Spring的AOP功能,方便进行面向切面编程,许多不容易用传统ОOP实现的功能可以通过AOP轻松实现。
3)声明式事务的支持
可以将我们从单调烦闷的事务管理代码中解脱出来,通过声明式方式灵活的进行事务管理,提高开发效率和质量。
4)方便程序的测试
可以用非容器依赖的编程方式进行几乎所有的测试工作,测试不再是昂贵的操作,而是随手可做的事情。
5)方便集成各种优秀框架
Spring对各种优秀框架(Struts、Hibernate、Hessian、Quartz等)的支持。
6)降低JavaEE API的使用难度
Spring对 JavaEE APIl(如JDBC、JavaMail、远程调用等)进行了薄薄的封装层,使这些API的使用难度大为降低。

4、spring的体系结构

①Core Container(核心容器)

spring的核心容器是其他模块建立的基础,它主要由Beans模块、Core模块、Context-support模块和SpEL(Spring Express Language,Spring表达式语言)模块组成。

Beans模块:
提供BeanFactory,是工厂模块的经典实现,Spring将管理对象称为bean。

Core核心模块
提供Spring框架的基本组成部分,包括loC和DI功能。

Context上下文模块:
建立在Core和Beans模块的基础之上,它是访问定义和配置的任何对象的媒介。其中ApplicationContext接口是上下文模块的焦点。

Context-support模块:
提供了对第三方库嵌入Spring应用的集成支持,比如缓存(EhCache, Guava, JCache)、邮件服务(JavaMail)、任务调度(CommonJ, Quartz)、模板引擎(FreeMarker, JasperReports, Velocity)等。

SpEL模块:
是Spring 3.0后的新增模块,它提供了Spring Expression Language支持,是运行时查询和操作对象的强大的表达式语言。

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

数据访问/集成层包括:JDBC、ORM、OXM、JMS、和Transactions模块。
JDBC模块: 提供抽象层,大幅度减少了在开发过程中对数据库操作的编码。
ORM模块: 对流行的对象关系映射API,包括JPA、JDO和Hibernate提供了集成层支持。
OXM模块: 提供了一个支持对象/XML映射的抽象层实现。
JMS模块: 指java消息传递服务。
Transactions事务模块: 支持对实现特殊接口以及所有POJO类的编程和声明事务管理。

③web

Spring的web层包括WebSocket、Servlet、Web和Portlet模块。

④其他模块

Spring的其他模块还有AOP、Aspects、Instrumentation以及Test模块。

二、Spring的下载安装

1、下载

下载是在官网下的,太难了,我网站都打不开,下的时候下一个失败一个T^T,建议提前一个晚上下好。。
这里是spring framework的下载地址:
http://repo.spring.io/release/org/springframework/spring
这是gradle的下载地址:
https://gradle.org/next-steps/?version=4.3.1&format=all
阿里云仓库,据说这边下的快,但我不会用。。。
https://maven.aliyun.com/mvn/guide

第三方依赖包:http://commons.apache.org/proper/commons-logging/download_logging.cgi

2、spring目录结构

请添加图片描述
docs文件:spring的API文档和开发规范
libs文件:开发需要的JAR包和源码
schema文件:定义了spring相关配置文件的约束

libs中jar包分为三类
以RELEASE.jar结尾的是:Spring框架class文件的JAR包。
以RELEASE-javadoc.jar结尾的是:Spring框架API文档的压缩包。
以RELEASE-sources.jar结尾的是:Spring框架文件的压缩包。

其中有四个Spring的基础包,分别对应Spring核心容器的四个模块
spring-core-4.3.6.RELEASE.jar:包含Spring框架基本的核心工具类,是其他组件的基本核心。
spring-beans-4.3.6.RELEASE.jar:所有应用都要用到的JAR包。
spring-context-4.3.6.RELEASE.jar:提供了在基础loC功能上的拓展服务等。
spring-expression-4.3.6.RELEASE.jar:定义了Spring的表达式语言。

3、配置(可跳过)

计算机系统属性-高级-环境变量
在这里插入图片描述
系统变量-新建(变量名、变量值如下)
在这里插入图片描述

在这里插入图片描述
最后在cmd上用gradle -v验证一下
在这里插入图片描述

三、spring快速入门

1、eclipse版本

(1)在eclipse中建一个web项目,将图中这几个jar包,复制到lib文件夹中。
请添加图片描述
然后,选中这几个文件,右键bulid path
请添加图片描述
(2)在src目录下,穿件,com.itheima.ioc 包,并在包中创建接口UserDao,在接口中定义一个say方法。

package com.itheima.ioc;

public interface UserDao {
	public void say();

}

创建接口的实现类UserDaoImpl,在接口中实现say方法

package com.itheima.ioc;

public class UserDaoImpl implements UserDao {

	@Override
	public void say() {
		// TODO Auto-generated method stub
		System.out.println("userDao say hello World !");

	}


}

请添加图片描述
(3)在src目录下,创建Spring的配置文件applicationContext.xml,并在配置文件中创建一个iduserDaoBean

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/scheama/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">
	<!-- 将指定类配置给Spring,让Spring创建其对象的实例 -->
	<bean id="userDao" class="com.itheima.ioc.UserDaoImpl"></bean>>
	
</beans

代码的前4句,可以在spring-5.2.9.RELEASE-dist\spring-framework-5.2.9.RELEASE\docs\spring-framework-reference下,找到index.html 文件。在如图位置
请添加图片描述
这时候可能会发现代码报错:cvc-elt.1: Cannot find the declaration of element 'beans',我查的资料说可能是因为版本问题,可以换成如下代码。

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "http://www.springframework.org/dtd/spring-beans-2.0.dtd">
<beans><bean id="userDao" class="com.itheima.ioc.UserDaoImpl"></bean></beans> 

(4)在同一个包下,创建测试类TestloC,并在类中,编写main()方法。在main方法中,初始化Spring容器,加载配置文件,然后通过Spring容器获取userDao实例,调用实例中的say方法。

package com.itheima.ioc;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class TestloC {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		//1.初始化spring容器,加载配置文件
		ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
		
		//2.通过容器获取userDao实例
		UserDao userDao = (UserDao) applicationContext.getBean("userDao");
		
		//3.调用实例中的say()方法
		userDao.say();

	}

}

完成以上步骤,成功出现结果。
请添加图片描述

2、步骤

1,导入框架对应jar包
2,编写接口和实现
3,创建xml配置文件
4,将2中内容配置到配置文件中
5,根据spring客户端传递标识
在这里插入图片描述
在这里插入图片描述

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-07-24 00:03:28  更:2021-07-24 00:03:56 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/18 17:57:02-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码