spring el表达式解析_Spring之旅第一篇-初识Spring
目录
- 一、概述
- 二、模块
- 三、动手创建
一、概述
只要用框架开发java,一定躲不过spring,Spring是一个轻量级的Java开源框架,存在的目的是用于构建轻量级的J2EE应用。Spring的核心是控制反转(IOC)和面向切面编程(AOP)。Spring有如下特点:
- 轻量级:应用大小和应用开支,包括应用方式
- DI/IoC:提供松耦合的一种实现技术
- AOP:切面编程将业务逻辑从应用服务中分离
- 容器:包含并管理应用对象的生命周期和配置
- 框架:使用组件配置组合成复杂的应用,并提供很多基础功能
由于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相关推荐
- Spring EL表达式使用详解
Spring EL表达式使用详解 什么是Spring EL表达式 注入字面值 注入操作系统(OS)的属性 注入properties配置文件中数据 Bean属性调用 Bean方法调用 T运算符 构造器 ...
- Spring EL 表达式的简单介绍和使用
文章目录 1. 简单介绍 1.1. 什么是 Spring EL 1.2. 为什么要使用 Spring EL 1.3. 如何使用 Spring EL 2. 简单使用 3. EL 表达式解析引擎 3.1. ...
- Tomcat 6、7在EL表达式解析时存在的一个Bug
本文出处:http://blog.csdn.net/chaijunkun/article/details/9097229,转载请注明.由于本人不定期会整理相关博文,会对相应内容作出完善.因此强烈建议在 ...
- Spring EL表达式
1,Spring EL 表达式简介 Spring EL 表达式是Spring提供的最新的灵活的注入方式,相比于传统的注解注入以及xml配置文件的注入远远地更加的强大. 2,Spring EL的功能 ( ...
- 【SpringBoot】【Thyemeleaf 】【Spring EL表达式】 SPEL调用静态类、静态方法
前言 spring 5.0.6.RELEASE Thyemeleaf 3.0 SpringBoot 2.3.4.RELEASE Spring EL表达式 调用静态类.静态方法 参考这里:https:/ ...
- spring el 表达式的上下文关联到 ApplicationContext
前言 spring 5.0.6.RELEASE 需求:让 spring el 表达式的上下文关联到 ApplicationContext .这样就能在 EL 表达式中调用Bean. 代码 // cre ...
- 什么是Spring EL表达式
本文来说下什么是Spring EL表达式 文章目录 概述 概述
- Spring 在 xml配置文件 或 annotation 注解中 运用Spring EL表达式
Spring EL 一:在Spring xml 配置文件中运用 Spring EL Spring EL 采用 #{Sp Expression Language} 即 #{spring表达式} ...
- boot spring 没有父子容器_Spring 系列(二):Spring MVC的父子容器
1.背景 在使用Spring MVC时候大部分同学都会定义两个配置文件,一个是Spring的配置文件spring.xml,另一个是Spring MVC的配置文件spring-mvc.xml. 在这里给 ...
最新文章
- 瀑布式开发与敏捷开发的区别是什么
- R语言使用ggpubr包可视化分组条形图(grouped bar plot)、并添加误差条(error bar、误差条显示平均值+/-sd)、添加分组填充色、添加jitter、自定义分组抖动数据点形状
- RecursionError: maximum recursion depth exceeded
- MongoDB系列(一):简介及安装
- 利用Word2010给汉字添加汉语拼音
- 大学生要学计算机嘛,大学新生有必要买电脑吗,为什么很多人都带电脑去学校了?...
- Echart 地图实例
- UML图---基本概念
- 虚拟大师怎么修改手机_手机虚拟大师,打造一个属于你的专属手机平台
- 安装python、pycharm 和anaconda
- 【路径规划】基于matlab GUI EKF算法机器人SLAM演示路径规划【含Matlab源码 509期】
- 猿创征文|从单机百万tpmc到分布式千万tpmc,GaussDB性能提升的3个关键技术剖析
- 功率放大电路工作状态
- linux清理tmp垃圾文件夹,Linux tmp目录自动清理总结
- teablue数据分析_京东消费者数据分析
- Hulu斩获两枚艾美奖提名!(附第68届艾美奖重要奖项提名名单)
- oracle ytd,hana ytd计算
- 三本郑大计算机考研,三本跨专业考研985,初试排名第一,结果竟被导师拒绝!寒心呀!...
- 千粉缔造760w播放!B站“新人”UP主在B站怎么加速上位?
- 项目中发生的一个奇葩问题
热门文章
- 怎样用HTML5 Canvas制作一个简单的游戏
- xp snapshot.
- 【c++】iostreeam中的类为何不可以直接定义一个无参对象呢
- JS的Document属性和方法
- LINQ : 如何为LINQ TO SQL实现自定义业务逻辑
- 解决MathType与Word 2016兼容性问题。
- 解决使用mybatis分页插件PageHelper的一个报错问题
- vs2017 2019 下载更新慢的解决方法
- Sublime Text 3中文乱码问题的解决(最有效)
- Object not found! The requested URL was not found on this server.... 报错解决方案