​ Spring是一个开源框架, Spring为简化企业级开发而生,使用Spring,JavaBean就可以实现很多以前要靠EJB才能实现的功能。同样的功能,在EJB中要通过繁琐的配置和复杂的代码才能够实现,而在Spring中却非常的优雅和简洁。 Spring是一个IOC(DI)和AOP容器框架。有着优良的特性:

特性 介绍
非侵入式 基于Spring开发的应用中的对象可以不依赖于Spring的API
依赖注入 DI——Dependency
Injection,反转控制(IOC)最经典的实现。
面向切面编程 Aspect
Oriented Programming——AOP
容器 Spring是一个容器,因为它包含并且管理应用对象的生命周期
组件化 Spring实现了使用简单的组件配置组合成一个复杂的应用。在 Spring 中可以使用XML和Java注解组合这些对象。
一站式 在IOC和AOP的基础上可以整合各种企业应用的开源框架和优秀的第三方类库(实际上Spring 自身也提供了表述层的SpringMVC和持久层的Spring JDBC)。

Spring模块

核心容器(Spring Core)

核心容器提供Spring框架的基本功能。Spring以bean的方式组织和管理Java应用中的各个组件及其关系。Spring使用BeanFactory来产生和管理Bean,它是工厂模式的实现。BeanFactory使用控制反转(IoC)模式将应用的配置和依赖性规范与实际的应用程序代码分开。

应用上下文(Spring Context)

Spring上下文是一个配置文件,向Spring框架提供上下文信息。Spring上下文包括企业服务,如JNDI、EJB、电子邮件、国际化、校验和调度功能。

Spring面向切面编程(Spring AOP)

通过配置管理特性,Spring AOP 模块直接将面向方面的编程功能集成到了 Spring框架中。所以,可以很容易地使 Spring框架管理的任何对象支持 AOP。Spring AOP 模块为基于 Spring 的应用程序中的对象提供了事务管理服务。通过使用 Spring AOP,不用依赖 EJB 组件,就可以将声明性事务管理集成到应用程序中。

JDBC和DAO模块(Spring DAO)

JDBC、DAO的抽象层提供了有意义的异常层次结构,可用该结构来管理异常处理,和不同数据库供应商所抛出的错误信息。异常层次结构简化了错误处理,并且极大的降低了需要编写的代码数量,比如打开和关闭链接。

对象实体映射(Spring ORM)

Spring框架插入了若干个ORM框架,从而提供了ORM对象的关系工具,其中包括了Hibernate、JDO和 IBatis SQL Map等,所有这些都遵从Spring的通用事物和DAO异常层次结构。

Web模块(Spring Web)

Web上下文模块建立在应用程序上下文模块之上,为基于web的应用程序提供了上下文。所以Spring框架支持与Struts集成,web模块还简化了处理多部分请求以及将请求参数绑定到域对象的工作。

MVC模块(Spring Web MVC)

MVC框架是一个全功能的构建Web应用程序的MVC实现。通过策略接口,MVC框架变成为高度可配置的。MVC容纳了大量视图技术,其中包括JSP、POI等,模型来有JavaBean来构成,存放于m当中,而视图是一个街口,负责实现模型,控制器表示逻辑代码,由c的事情。Spring框架的功能可以用在任何J2EE服务器当中,大多数功能也适用于不受管理的环境。Spring的核心要点就是支持不绑定到特定J2EE服务的可重用业务和数据的访问的对象,毫无疑问这样的对象可以在不同的J2EE环境,独立应用程序和测试环境之间重用。

开发工具

可以使用STS IDEA ECLIPSE 等 个人比较喜欢IDEA

案例

等待下载

下载完后的目录结构IDE可以帮助我们把需要的jar包下载下来

创建一个类结构如下

配置

    <!-- 使用bean元素定义一个由IOC容器创建的对象 --><!-- class属性指定用于创建bean的全类名 --><!-- id属性指定用于引用bean实例的标识 --><bean id="student" class="com.hph.helloworld.bean.Student"><!--使用property子元素为bean属性赋值--><property name="id" value="1001"></property><property name="name" value="Spring"></property><property name="age" value="18"></property></bean>

创建Main方法

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;public class Main {public static void main(String[] args) {//1.创建IOC容器对象ApplicationContext iocContainer =new ClassPathXmlApplicationContext("helloworld.xml");//2.根据id值获取bean实例对象Student student = (Student) iocContainer.getBean("student");//3.打印beanSystem.out.println(student);}
}

运行结果

Spring入门系列之Spring概述相关推荐

  1. Spring Security系列之Spring Social实现微信社交登录(九)

    社交登录又称作社会化登录(Social Login),是指网站的用户可以使用腾讯QQ.人人网.开心网.新浪微博.搜狐微博.腾讯微博.淘宝.豆瓣.MSN.Google等社会化媒体账号登录该网站. 前言 ...

  2. Spring Data 系列(二) Spring+JPA入门(集成Hibernate)

    通过[Spring Data 系列(一) 入门]的介绍,通过对比的方式认识到Spring提供的JdbcTemplate的强大功能.通过使用JdbcTemplate,操作数据库,不需要手动处理Conne ...

  3. Spring Cloud入门系列(1)- Spring生态体系发展史+全系框架介绍

    Spring发展史 2000年,Java EE和EJB迅速发展,很多知名公司都是采用此技术方案进行项目开发,但是EJB 属于重量级框架,开发繁琐.于是一个叫Rod Johnson的大佬写了一本叫做&l ...

  4. 【spring authorization server系列教程】(一)入门系列,spring authorization server简介。快速构建一个授权服务器(基于最新版本0.3.0)

    系列文章目录 [spring authorization server系列教程](一)入门系列,快速构建一个授权服务器 文章目录 系列文章目录 前言 一.目前已实现的功能 二.入门,一步一步快速开始构 ...

  5. Spring入门第一讲——Spring框架的快速入门

    Spring的概述 什么是Spring? 我们可以从度娘上看到这样有关Spring的介绍: 说得更加详细一点,Spring是一个开源框架,Spring是于2003年兴起的一个轻量级的Java开发框架, ...

  6. Spring入门案例【spring框架创建对象】(超详细)

    Spring入门案例 Spring框架概述 Spring框架特点 准备过程 下载 spring-5.2.6.RELEASE-dist.zip 下载 commons-logging-1.2-bin.zi ...

  7. Spring Cloud系列之Spring Cloud Config

    认识Spring Cloud Config Spring Cloud Config是最早的配置中心,虽然后面的之秀Nacos可以取代它, 但是Spring Cloud Config还是很多公司在用,比 ...

  8. Spring Boot系列六 Spring boot集成mybatis、分页插件pagehelper

    1. 概述 本文的内容包括如下内容: Spring Boot集成mybatis Spring Boot集成pagehelper分页插件,定义分页的相关类 实现工具类:model转dto,实现数据层和传 ...

  9. Spring核心系列之Spring中的事务

    Spring的事务,因为这个东西算是Spring 内部使用AOP最好的一个体现,体现了AOP思想@EnableTransactionManagement 表示开启事务!Spring事务其实就是Spri ...

最新文章

  1. mysql忘记密码重置
  2. 从源码深处体验Spring核心技术--IOC容器初体验
  3. [css] 使用flex实现三栏布局,两边固定,中间自适应
  4. Android 系统(124)---Android 如何快速写满存储空间
  5. Excel弱爆了!这个工具30分钟完成了我一天的工作量,零基础也能学!
  6. JAVA进制转换,十进制转换为八进制
  7. TensorFlow北大公开课学习笔记-4.3滑动平均
  8. ioncube linux,linux 下ionCube安装
  9. 百度劫持有哪些特征,百度快照劫持处理方法及流程?
  10. 【docker】三、Permission denied与sudo命令
  11. C#开发实战视频教程_基于多线程C#开发QQ农场
  12. 文本分类模型学习笔记
  13. excel自动调整列宽_办公软件操作技巧012:如何调整excel表格的行高与列宽
  14. win10照片查看器_Win10小技巧,帮你事半功倍
  15. 计算机主机光驱弹不出来怎么办,台式机光驱弹不出来怎么办
  16. 网站友链交换注意事项
  17. 学术论文的参考文献格式写法
  18. 1399 最小生成树(Prim算法1)
  19. java阳历农历互相转换
  20. 降噪蓝牙耳机怎么选?入耳式降噪耳机排行榜10强

热门文章

  1. PAT 1073 多选题常见计分法(20)(代码+思路)
  2. Linux下通配符总结
  3. 增删改模块学习中遇到的问题
  4. [转载]SIFT(尺度不变特征变换)算法小结
  5. 通过 Visual Studio 对 SQL Server 中的存储过程设置断点并进入存储过程对其进行调试...
  6. 各個瀏覽器CSS樣式控制
  7. 关于在页面跳转前alert()不能弹出消息的问题
  8. leetcode 1164 python
  9. php 编程祝新年快乐_第一门编程语言选什么好?
  10. 删除选修c语言课程的女生成绩记录,pta10-1 查询没有选修‘C语言‘课程的学生 (10分)...