作为流行了10年以上的老将,spring依然精神矍铄,影响不减。本文将对spring很基础的概念进行介绍以及为学习spring最核心和基础的知识作环境搭建的准备。

Spring官网

http://docs.spring.io/

简介

Spring为JAVA企业级应用提供了一个较为复杂框架流行框架。spring到底能做什么,或者说spring现在能做什么?

除了spring framework之外还有spring boot/spring data/spring cloud/… 快接近无所不包了。已经非常复杂和活跃。

Spring framework

就像上面提到的那样,Spring有很多project(http://spring.io/projects),
spring framework只是其中的一个(http://projects.spring.io/spring-framework/)。

API & Reference

目前Current GA 是4.3.4,对应的API和Reference如下。作为第一参考资料,碰到问题的时候Reference -〉API的顺序进行查询。

项目 详细地址
API http://docs.spring.io/spring/docs/current/javadoc-api/
Reference http://docs.spring.io/spring/docs/current/spring-framework-reference/htmlsingle/

工具

工欲善其事,必先利其器。可以使用STS/NeatBean/IDEA直接下载来使用即可。

STS

spring官方推荐,对工具没有特别的喜好,可以使用STS。其本身就是spring在Eclipse上简单组装的。

项目 详细地址
STS http://spring.io/tools/sts/all

IDEA

IDEA是收费的软件,但是可以使用其社区版,基础功能都已经包含,是很多java程序员的最爱。

Eclipse

很多人已经对Eclipse有了很多自定义的设定,对他们来说,spring只是很小的一部分。而实际项目中的开发更为如此,所以本文使用Eclipse中更新STS插件的方式进行安装。

Eclipse 4.6 Neon

项目 详细地址
Neon https://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/neon/1a/eclipse-jee-neon-1a-win32-x86_64.zip

更新方式

项目 详细地址
sts插件 http://dist.springsource.com/release/TOOLS/update/e4.6/

Maven/Gradle

使用Maven或者Gradle管理依赖关系非常的方便,如果你还是习惯于使用ant,那也可以,但是ant不能直接提供依向Maven或者Gradle那样的依赖关系的自动管理的功能。比如4.3.4的简单地spring的依赖关系可以写成如下所示:

Maven dependency

<dependencies><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>4.3.4.RELEASE</version></dependency>
</dependencies>

Gradle Dependency

dependencies {compile 'org.springframework:spring-context:4.3.4.RELEASE'
}

这些在Spring的Reference中都可轻松查询到(https://projects.spring.io/spring-framework/)

IOC & DI

IOC和DI基本上是一个意思,在spring最初引入的时候,把这种控制的方式称为IoC(Inversion of Control)。但是后来Martin Fowler等认为其实没有反转任何事情,其做的事情只是将注入了依赖关系所以称之为Dependency Injection,个人认为文字游戏的成份稍多。
A类的对象通过调用B类对象的方法来实现某一功能,在spring中是可以通过Injection的方式来实现的。作为入门者需要理解的是如果没有IOC应该怎么做呢,在Spring中被称为Dependency的可能就是一个简单的属性或者方法参数等等等,简单地来说,通过调用setter方法或者构造函数等等,这个就是IOC/DI方式。而通过只在Meta数据中描述实际的类的依赖关系,spring负责把这些拧在一起,同时负责管理其lifecycle,解放了不少的工作,提高了开发的效率。

环境准备

为了更加清楚,使用Eclipse直接倒入spring的库的方式。熟悉的可以直接跳过。

下载spring库

项目 详细地址
lib http://repo.spring.io/release/org/springframework/spring/
目前最新版本 http://repo.spring.io/release/org/springframework/spring/4.3.4.RELEASE/

准备步骤

Step 1:使用Eclipse创建一个Java项目
Step 2:创建一个lib目录
Step 3:将上面下载下来的spring的库文件全部拷贝到lib目录中
Step 4:在项目上右键->属性后将lib文件夹下的文件全部加入

Spring基础:快速入门spring(1):基础概念相关推荐

  1. java基础快速入门--面向对象(基础)

    类与对象 看一个养猫问题 张老太养了两只猫:一只名字叫小白,今年三岁,白色.还有一只叫小花,今年一百岁,花色.请编写一个程序,当用户输入小猫的名字时,就显示该猫的名字,年龄,颜色.如果用户输入的小猫名 ...

  2. Spring框架快速入门

    目录 什么是Spring? 为什么学习Spring? Spring的快速入门 Spring的版本 IOC概述 什么是IOC? Spring的IoC入门 下载Spring的开发包 创建web项目,引入S ...

  3. ROS2零基础快速入门

    ROS2入门最快需要多少时间?3天: ROS2开发一款基础机器人需要多久?3个星期: ROS2怎么才能算"精通"?不可能,3年也不行-- 如何判断一款通用性软件成熟并可以投入精力去 ...

  4. Spring基础:快速入门spring boot(7):spring boot 2.0简单介绍

    从这篇文章开始以spring boot2为主要版本进行使用介绍. Spring boot 2特性 spring boot2在如下的部分有所变化和增强,相关特性在后续逐步展开. 特性增强 基础组件升级: ...

  5. Unity快速入门之一 3D基础概念、Camera、Canvas RenderMode的几种方式对比

    最近要给公司的小伙伴做Unity入门,针对几个常用的知识进行快速入门介绍. Unity快速入门之一 3D基础概念.Camera.Canvas RenderMode的几种方式对比_翕翕堂 Unity快速 ...

  6. Spring Boot快速入门(尚硅谷笔记)

    一.Spring Boot 入门 1.Spring Boot 简介 简化Spring应用开发的一个框架: 整个Spring技术栈的一个大整合: J2EE开发的一站式解决方案: 2.微服务 2014,m ...

  7. 《Kubernetes零基础快速入门》简介

    容器技术快速入门书<Kubernetes零基础快速入门>,京东当当天猫都有发售.定价59元,打折一下更合适. Kubernetes为容器化的应用提供了资源调度.部署.运行.服务发现.扩容和 ...

  8. 零基础快速入门SpringBoot2.0教程 (三)

    一.SpringBoot Starter讲解 简介:介绍什么是SpringBoot Starter和主要作用 1.官网地址:https://docs.spring.io/spring-boot/doc ...

  9. 视频教程-Spring框架快速入门到精通-Java

    Spring框架快速入门到精通 十年项目开发经验,主要从事java相关的开发,熟悉各种mvc开发框架. 王振伟 ¥18.00 立即订阅 扫码下载「CSDN程序员学院APP」,1000+技术好课免费看 ...

  10. 视频教程-Spring boot快速入门-Java

    Spring boot快速入门 十年项目开发经验,主要从事java相关的开发,熟悉各种mvc开发框架. 王振伟 ¥12.00 立即订阅 扫码下载「CSDN程序员学院APP」,1000+技术好课免费看 ...

最新文章

  1. 哈希表的分类,创建,查找 以及相关问题解决
  2. 面试官:磁盘 IO 变高,你怎么分析?
  3. RStudio配置R程序包的默认下载源
  4. jQuery操作Dom、jQuery事件机制、jQuery补充部分
  5. golang interface 类型转换_无符号Golang程序逆向方法解析
  6. appium输入和清除操作各方法对比(android)
  7. 小程序直播间报错:{“errmsg“:“the current room status does not allow this operation rid:“,“errcode“:300023}
  8. dataoutputstream.write 有时无法发送_RTK实操——CORS官方网教您如何解决RTK无法固定的问题...
  9. C#LeetCode刷题之#226-翻转二叉树(Invert Binary Tree)
  10. 55.函数模板指针匹配(模板自动匹配*多的)
  11. linux监听端口丢失,查看 linux 端口 监听
  12. NetWare 客户服务禁用了欢迎屏幕和快速切换恢复方法
  13. 百度分享在新闻列表页分享多篇文章
  14. QT QColor颜色选择器学习
  15. python制作辅助和易语言的区别_为什么多数外挂都用易语言?
  16. Java生成动态GIF图片
  17. 一些无线通信系统模型的概念
  18. 沧小海深入剖析xilinx的GTP/GTX核,掌握高速串行收发机制——第一章 前言闲谈
  19. C/C++代码缺陷静态检查工具cppcheck
  20. 用argparse实现ls -lha等linux命令格式展示

热门文章

  1. [ SharePoint ADFS 开发部署系列 (一)]
  2. 国际化姿态迎接G20 浙江建设智慧城市
  3. xenomai网卡驱动分析之一 加载和使用
  4. 2009年上半年 系统集成项目管理工程师 上午试卷
  5. 设计模式之适配器模式 :外部系统接口的使用
  6. kernel panic问题分析(一)
  7. 混合云架构中的数据加密
  8. 陈延伟:任督二脉之内存管理总结笔记
  9. 文件上传个人bypass总结
  10. Python爬虫练习 爬取网络小说保存到txt