Spring Framework 简介
Spring Framework
依赖注入、事务管理、Web应用程序、数据访问、消息传递、测试和更多的核心支持。
Tips:
Spring 官网:https://spring.io/
spring framework 官网:https://projects.spring.io/spring-framework/
0x01介绍
Spring框架提供了现代的基于java的企业应用程序在任何部署平台的综合规划和配置模型。Spring的一个关键元素是应用程序级的基础设施支持:Spring关注企业应用程序的“管道”,以便团队能够专注于应用级业务逻辑,而不必与特定部署环境不必要的联系。
0x02 功能
- 核心技术:依赖注入、事件、资源、国际化、验证、数据绑定、类型转换,拼写,AOP。
- 测试:模拟对象,TestContext框架,Spring MVC测试,WebTestClient。
- 数据访问:事务、DAO支持、JDBC、ORM、编组XML。
- Spring MVC Web框架和 Spring WebFlux web 框架
- 整合:Remoting、JMS、JCA、JMX、电子邮件、任务调度、缓存。
- 语言:Kotlin,Groovy动态语言。
0x03 Minimum requirements
- JDK 8+ for Spring Framework 5.x
- JDK 6+ for Spring Framework 4.x
- JDK 5+ for Spring Framework 3.x
0x04 Building Java Projects with Maven
和大多数 Spring入门指南 一样,您可以从头开始完成每一步,也可以绕过您已经熟悉的基本设置步骤。无论哪种方式,最终都有工作代码。
- 1. 手动使用Maven创建Java 项目

2. 勾选如图所示两个地方

3. 填写Project Name,点击 ’Finish‘ 按钮

4. 创建hello 文件夹,目录结构如图所示:


5. 修改POM.xml 文件内容如下所示:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.xingyun</groupId>
<artifactId>spring-context-sample</artifactId>
<version>0.0.1-SNAPSHOT</version> <!-- 添加Spring Context maven依赖 -->
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.0.4.RELEASE</version>
</dependency>
</dependencies> </project>
6.创建接口文件
hello/MessageService.java
package hello;
public interface MessageService {
String getMessage();
}
7.创建实体类
hello/MessagePrinter.java
package hello; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; @Component
public class MessagePrinter { final private MessageService service; @Autowired
public MessagePrinter(MessageService service) {
this.service = service;
} public void printMessage() {
System.out.println(this.service.getMessage());
}
}
Tips:这里一定不要漏了写这两个注解
8.创建方法调用主类
hello/Application.java
package hello; import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.*; @Configuration
@ComponentScan
public class Application { @Bean
MessageService mockMessageService() {
return new MessageService() {
public String getMessage() {
return "Hello World!";
}
};
} public static void main(String[] args) {
// TODO Auto-generated method stub
ApplicationContext context = new AnnotationConfigApplicationContext(Application.class);
MessagePrinter printer = context.getBean(MessagePrinter.class);
printer.printMessage();
} }
Tips:这里特别注意,任何一个注解都不能缺少,否则会报错。
9. Run 主方法

上面的例子显示了依赖注入的基本概念,messageprinter 实现 MessageService接口是解耦的,写什么都可以使用Spring Framework。
0x05 其他更多用法参考文档
Spring Framework 简介的更多相关文章
- Spring Framework简介
作者关于此主题早期文章 Spring框架快速入门 起源 要谈Spring的历史,就要先谈J2EE.J2EE应用程序的广泛实现是在1999年和2000年开始的,它的出现带来了诸如事务管理之类的核心中间层 ...
- Spring Boot 简介
作者其他Spring系列文章 Spring Framework简介 Spring框架快速入门 Spring Boot愿景 Spring Boot愿景就是让我们创建可运行的.独立的.基于Spring的 ...
- Spring框架简介 Spring Framework Introduction
Introduction The Spring Framework provides a comprehensive programming and configuration model for m ...
- Spring Framework体系结构简介
说明:以下转自Spring官方文档,用的版本为4.3.11版本. 一.引用官方文档 2.2.1核心集装箱 所述核心容器由以下部分组成spring-core, spring-beans,spring-c ...
- Spring Framework 5.0.0.M3中文文档 翻译记录 Part I. Spring框架概览1-2.2
Part I. Spring框架概览 The Spring Framework is a lightweight solution and a potential one-stop-shop for ...
- Spring Boot简介
Spring Boot简介 Spring Boot是为了简化Spring开发而生,从Spring 3.x开始,Spring社区的发展方向就是弱化xml配置文件而加大注解的戏份.最近召开的SpringO ...
- Spring系列(零) Spring Framework 文档中文翻译
Spring 框架文档(核心篇1和2) Version 5.1.3.RELEASE 最新的, 更新的笔记, 支持的版本和其他主题,独立的发布版本等, 是在Github Wiki 项目维护的. 总览 历 ...
- Spring Framework 官方文档学习(四)之Validation、Data Binding、Type Conversion
本篇太乱,请移步: Spring Framework 官方文档学习(四)之Validation.Data Binding.Type Conversion(一) 写了删删了写,反复几次,对自己的描述很不 ...
- Spring生态简介
目录 概述 项目说明 主要项目 社区项目 保留项目 最后总结 概述 做Java开发的人一提起Spring,首先在脑海中浮现出的就是"IoC","AOP",&qu ...
随机推荐
- Jlink 烧写Uboot
第一章 Hi3531_SDK_Vx.x.x.x版本升级操作说明 如果您是首次安装本SDK,请直接参看第2章. 第二章首次安装SDK 1.Hi3531 SDK包位置 在"Hi3531_V100 ...
- R语言︱文件读入、读出一些方法罗列(批量xlsx文件、数据库、文本txt、文件夹)
笔者寄语:小规模的读取数据的方法较为简单并且多样,但是,批量读取目前看到有以下几种方法:xlsx包.RODBC包.批量转化成csv后读入. R语言中还有一些其他较为普遍的读入,比如代码包,R文件,工作 ...
- Caused by:org.hibernate.HibernateException:Unable to make JDBC Connection
1.错误描述 Caused by:org.hibernate.HibernateException:Unable to make JDBC Connection[jdbc\:mysql\://loca ...
- FAT32文件系统的存储组织结构(二)
前面已经基于一个格式化的空U盘分析了一下FAT32文件系统存储的组织结构,下面我们从文件操作的角度来分析一下文件系统的运作机制.由于换了个U盘,所以仍然贴出刚格式化的空U盘的几个重要的数据区如下: ...
- java.sql.SQLException: ORA-01841
1.错误描述 body = (null) clientId = "DB719904-1E0C-35DC-725D-86ABCF2B6EEC" correlationId = &qu ...
- SpringMVC_第一个程序
一.基本代码的完成 补充 1.在myeclipse中 WEB-INF下放的资源和WebRoot下的资源区别: WEB-INF下放到资源是不能通过浏览器直接访问的,是比较安全的,只能是后台服务端程序进行 ...
- 漫漫人生路,学点Jakarta基础-重写(覆盖)、重载
首先我们现在开始进入Jakarta的时代,由原甲骨文易主到 Eclipse基金会下,但是不想舍弃java名字,因此基金会重新投票选出了Jakarta EE(雅加达).但是我们明白换汤汤不换药的道理,基 ...
- AndroidStudio 集成litepal 报错
E/AndroidRuntime(24972): org.litepal.c.b: can not find a class named org.litepal.model.Table_Schema ...
- 【BZOJ2565】最长双回文串(回文树)
[BZOJ2565]最长双回文串(回文树) 题面 BZOJ 题解 枚举断点\(i\) 显然的,我们要求的就是以\(i\)结尾的最长回文后缀的长度 再加上以\(i+1\)开头的最长回文前缀的长度 至于最 ...
- 【POJ1151】Atlantis(线段树,扫描线)
[POJ1151]Atlantis(线段树,扫描线) 题面 Vjudge 题解 学一学扫描线 其实很简单啦 这道题目要求的就是若干矩形的面积和 把扫描线平行于某个轴扫过去(我选的平行\(y\)轴扫) ...