目录

  • 一、概述
  • 二、模块
  • 三、动手创建

一、概述

只要用框架开发java,一定躲不过spring,Spring是一个轻量级的Java开源框架,存在的目的是用于构建轻量级的J2EE应用。Spring的核心是控制反转(IOC)和面向切面编程(AOP)。Spring有如下特点:

  1. 轻量级:应用大小和应用开支,包括应用方式
  2. DI/IoC:提供松耦合的一种实现技术
  3. AOP:切面编程将业务逻辑从应用服务中分离
  4. 容器:包含并管理应用对象的生命周期和配置
  5. 框架:使用组件配置组合成复杂的应用,并提供很多基础功能

由于spring是一个容器型的框架,所以它不排斥其他框架,并且可以轻松的整合其他框架。

Spring以一种非侵入式的方式来管理你的代码,Spring提倡”最少侵入”,这也就意味着你可以适当的时候安装或卸载Spring 。

回到顶部

二、模块

Spring框架大约由20多个小模块组成,这些模块分为:核心容器,数据访问/集成,Web,面向切面编程(AOP),消息和测试等等,如下图所示

下面逐一介绍这几大模块:

1.核心容器:核心容器包括spring-core, spring-beans,spring-context, spring-context-support, 和spring-express,其中spring-core和spring-beans模块提供框架的基础部分,包括控制反转和依赖注入。BeanFactory是一个复杂的工厂模式的实现。上下文(spring-context)模块建立在Core和Bean模块的基础之上:它提供了一种框架风格来访问对象,类似于JNDI注册表。Context模块继承了Bean模块的特点并增加了对国际化、事件传播、资源加载等的支持。ApplicationContext接口是Context模块的焦点。spring-context-support支持将第三方库集成到Spring应用中,例如缓存,JavaMail、模板引擎等。spring-expression模块为运行时查询和操作对象提供了强大的表达式语言,它是JSP2.1中的EL语言的扩展,这种语言支持设置和获取属性值,属性赋值,方法调用,访问数组,逻辑和算术运算符,还支持列表投影、选择和常见的聚合。

2.面向切面:Spring的AOP封装包提供了符合AOP Alliance规范的面向切面的编程实现,让你可以定义,例如方法拦截器和切点,从逻辑上讲,从而减弱代码的功能耦合,清晰的被分离开。

3.消息传送:Spring FrameWork 4包括一个spring-messaging模块,它是从Spring集成项目的关键抽象,如Message, MessageChannel,MessageHandle。该模块该包含一组注释映射消息的方法,类似Spring MVC基于注释的编程模型。

4.数据访问/集成:这一层包括JDBC、ORM、OXM、JMS和事务模块。spring-jdbc模块提供了一个JDBC抽象层从而消除了令人乏味的JDBC编程和解析数据库提供商特定的错误。spring-tx模块支持类的编程和声明式事务管理,实现特殊的接口和你的POJO(Plain Old Java Objects)。spring-orm模块提供了流行的对象-关系映射集成层API,包括JPA、JDO和Hibernate。使用spring-orm模块可以使这ORM框架结合Spring提供的其他特性,比如前面提到的简单的声明式事务管理。spring-oxm模块提供了一个抽象层,支持对象/XML映射的实现,如JAXB、 Castor、XMLBeans、 JiBX和XStream。

5.网络层:包括spring-web、spring-webmvc、spring-websocket和spring-webmvc-portlet模块。spring-web模块提供基础的针对web开发的集成特性,包括文件上传功能、利用Servlet侦听器进行IOC容器初始化和针对web的应用上下文。它还包括一个HTTP客户端和Spring的web部件的远程支持。spring-webmvc模块包括Spring的MVC模型和REST Web服务实现的web应用程序,Spring的MVC框架提供了一种清晰的分离模型,在领域模型代码和web form之间,并且还可以借助Spring框架的其他特性。

6.测试层:spring-test模块支持单元测试和包含Junit或者TestNG的集成测试,它提供了Spring的ApplicationContext一致性装载和这些上下文的缓存机制,它还提供了可用于测试代码隔离的模拟对象。

回到顶部

三、动手创建

概念先讲到这,先上手创建项目找找感觉。使用的是idea开发工具。创建项目开始(使用maven构建)

在Groupid中填入项目的包名即可。Artifactid自定义即可,这里建议与项目名称一致。版本默认在Groupid中填入项目的包名即可。Artifactid自定义即可,这里建议与项目名称一致。版本默认.、

另外的是maven相关设置,不懂得同学可以先去学学maven,项目中都是必学的

选择文件位置

创建完成,项目架构如图(img与md文件是说明文件,不计其中)

在main下新建文件夹resources用于存放资源文件

在resources上右键,选择mark directory as 选中Resources Root

添加spring依赖包

org.springframework spring-context 4.2.6.RELEASE

pom.xml的完整配置如下:

4.0.0com.yuanqinnan springLearn 1.0-SNAPSHOTspringLearnhttp://www.example.comUTF-8junit junit 4.11testorg.springframework spring-context 4.2.6.RELEASE

在刚才新建的resources下新建META-INF包,在META-INF下新建applicationContext.xml.

文件内容如下

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

新建test包和HelloWorld.java,Main.java结构如下:

代码如下:

public class HelloWorld { private String info; public String getInfo() { return info; } public void setInfo(String info) { this.info = info; }}public class Main { public static void main(String[] args) { //读取配置文件 ApplicationContext ctx=new ClassPathXmlApplicationContext("META-INF/applicationContext.xml"); //获取bean的实例 HelloWorld t=(HelloWorld) ctx.getBean("hello"); //调用方法 System.out.println(t.getInfo()); }}

在applicationContext.xml中配置bean

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

右键运行Main

得到结果:

如此,一个spring项目便创建成功,后面再继续学习spring的其他知识

加Java架构师进阶交流群获取Java工程化、高性能及分布式、高性能、深入浅出。高架构。性能调优、Spring,MyBatis,Netty源码分析和大数据等多个知识点高级进阶干货的直播免费学习权限 都是大牛带飞 让你少走很多的弯路的 群号是: 558787436 对了 小白勿进 最好是有开

spring el表达式解析_Spring之旅第一篇-初识Spring相关推荐

  1. Spring EL表达式使用详解

    Spring EL表达式使用详解 什么是Spring EL表达式 注入字面值 注入操作系统(OS)的属性 注入properties配置文件中数据 Bean属性调用 Bean方法调用 T运算符 构造器 ...

  2. Spring EL 表达式的简单介绍和使用

    文章目录 1. 简单介绍 1.1. 什么是 Spring EL 1.2. 为什么要使用 Spring EL 1.3. 如何使用 Spring EL 2. 简单使用 3. EL 表达式解析引擎 3.1. ...

  3. Tomcat 6、7在EL表达式解析时存在的一个Bug

    本文出处:http://blog.csdn.net/chaijunkun/article/details/9097229,转载请注明.由于本人不定期会整理相关博文,会对相应内容作出完善.因此强烈建议在 ...

  4. Spring EL表达式

    1,Spring EL 表达式简介 Spring EL 表达式是Spring提供的最新的灵活的注入方式,相比于传统的注解注入以及xml配置文件的注入远远地更加的强大. 2,Spring EL的功能 ( ...

  5. 【SpringBoot】【Thyemeleaf 】【Spring EL表达式】 SPEL调用静态类、静态方法

    前言 spring 5.0.6.RELEASE Thyemeleaf 3.0 SpringBoot 2.3.4.RELEASE Spring EL表达式 调用静态类.静态方法 参考这里:https:/ ...

  6. spring el 表达式的上下文关联到 ApplicationContext

    前言 spring 5.0.6.RELEASE 需求:让 spring el 表达式的上下文关联到 ApplicationContext .这样就能在 EL 表达式中调用Bean. 代码 // cre ...

  7. 什么是Spring EL表达式

    本文来说下什么是Spring EL表达式 文章目录 概述 概述

  8. Spring 在 xml配置文件 或 annotation 注解中 运用Spring EL表达式

    Spring  EL 一:在Spring xml 配置文件中运用   Spring EL Spring EL 采用 #{Sp Expression  Language} 即 #{spring表达式} ...

  9. boot spring 没有父子容器_Spring 系列(二):Spring MVC的父子容器

    1.背景 在使用Spring MVC时候大部分同学都会定义两个配置文件,一个是Spring的配置文件spring.xml,另一个是Spring MVC的配置文件spring-mvc.xml. 在这里给 ...

最新文章

  1. 瀑布式开发与敏捷开发的区别是什么
  2. R语言使用ggpubr包可视化分组条形图(grouped bar plot)、并添加误差条(error bar、误差条显示平均值+/-sd)、添加分组填充色、添加jitter、自定义分组抖动数据点形状
  3. RecursionError: maximum recursion depth exceeded
  4. MongoDB系列(一):简介及安装
  5. 利用Word2010给汉字添加汉语拼音
  6. 大学生要学计算机嘛,大学新生有必要买电脑吗,为什么很多人都带电脑去学校了?...
  7. Echart 地图实例
  8. UML图---基本概念
  9. 虚拟大师怎么修改手机_手机虚拟大师,打造一个属于你的专属手机平台
  10. 安装python、pycharm 和anaconda
  11. 【路径规划】基于matlab GUI EKF算法机器人SLAM演示路径规划【含Matlab源码 509期】
  12. 猿创征文|从单机百万tpmc到分布式千万tpmc,GaussDB性能提升的3个关键技术剖析
  13. 功率放大电路工作状态
  14. linux清理tmp垃圾文件夹,Linux tmp目录自动清理总结
  15. teablue数据分析_京东消费者数据分析
  16. Hulu斩获两枚艾美奖提名!(附第68届艾美奖重要奖项提名名单)
  17. oracle ytd,hana ytd计算
  18. 三本郑大计算机考研,三本跨专业考研985,初试排名第一,结果竟被导师拒绝!寒心呀!...
  19. 千粉缔造760w播放!B站“新人”UP主在B站怎么加速上位?
  20. 项目中发生的一个奇葩问题

热门文章

  1. 怎样用HTML5 Canvas制作一个简单的游戏
  2. xp snapshot.
  3. 【c++】iostreeam中的类为何不可以直接定义一个无参对象呢
  4. JS的Document属性和方法
  5. LINQ : 如何为LINQ TO SQL实现自定义业务逻辑
  6. 解决MathType与Word 2016兼容性问题。
  7. 解决使用mybatis分页插件PageHelper的一个报错问题
  8. vs2017 2019 下载更新慢的解决方法
  9. Sublime Text 3中文乱码问题的解决(最有效)
  10. Object not found! The requested URL was not found on this server.... 报错解决方案