Spring简化Java开发_spring如何简化java开发

1、spring简介

Spring的主要目的是用来替代更加重量级的企业级的java技术

2、spring如何简化java开发

1)基于POJO的轻量级和最小侵入性编程;

2)通过依赖注入和面向接口实现松耦合;

3)基于切面和惯例进行声明式编程;

4)通过切面和模板减少样版式代码。

3、举例说明

3.1 基于pojo的轻量级和最小侵入性编程

传统代码:比如实现一个买自行车的功能。我们需要先继承自行车的店,不然我们不知 道此店都有什么品牌的自行车。

1216875c9c57ea824d6379b6811d6a2f.png自行车厂商

1ad4a3f6ed6dc8a6ec4d6ce36f64a2e2.png购买者

这种继承导致应用与框架绑死,后期在父类上增加什么功能,子类还需要去维护。

spring采用构造器实行(当然spring还有几点注入方式,此处只是用构造器注入)

61dfbc6daba413447e56c208c39f488d.png自行车厂商

03e0ea5dd140786d61e235462f63f335.png购买者

3870ca2d74964bbcde2973a389f4a1dc.png配置bean

eee54d20a656eefc4d21bb5fda7ed777.png测试类

3.2 通过依赖注入和面向接口实现松耦合

任何一个有实际意义的应用,都会由很多个类组成,这些类相互协作来完成特定的任 务。 如果每个对象都负责管理与自己相互协作的对象,这会导致应用高度耦合。通过 DI,对 象的依赖关系将由系统中负责协调各对象的第三方组件在创建对象的时候进 行设 定,对 象无需自行创建和管理他们的依赖关系,依赖关系将被自动注入到需要他 们的对象中去。

如上面3.1的 示例,如果有第二大自行车厂商怎么办。传统的方式只能获取那一个厂商 的。通过DI我们可以轻松实现,我们在上面的基础上增加了第二厂商,之后修改buy及配 置bean

88493d25271cf9c079f33311967a3537.png第二厂商

0744b481a700071ed664b699ce87c05a.png购买者

9369c47ffabf1a1be71af62da530e69f.png配置

4adf65c38ae49293179d2bfcef7b3cc5.png测试

3.3基于切面和惯例进行声明式编程

切面编程允许你把遍布在应用各处的功能分离出来形成可重用的组件(例如:常见的 日志、事物)。

比如现在需要在一个方法执行前打印一句“进入可执行方法”这样一段话

传统代码示例:

5c893e7cfa19491ab4ab9b3b5973aa8b.png公共方法

486e592797bf297750a277aaed4f5c43.png一个实现类

此时、如果有AopTest2也要实现,那么还需要将AspectUtils.say();这句话加入 到相应的方法中,很麻烦、而且后期如果修改了方法、那简直就是厄运了。通过 aop可以很好的解决这类问题。示例代码,将AspectUtils变为切面

408e053d566c39ddb5244353827a2b10.png

4aeecd166bd4a769316aaa0e7a96ac44.png配置

a384ef80e6fe889b99147c645f3db5ef.png切面

3.4通过切面和模板减少样版式代码

相信大家都使用过JDBC编程,里面的样板式代码就不用说了,什么连接呀、什么最 后关闭呀,都是一致的。你会发现你要实现的业务层就那么一点,而你的代码却很 长,而且还是和你业务没有什么关系的代码、spring为我们提供了JdbcTemplate来 消除样板式代码,并且spring也集成了Hibernate、mybatis。以及JPA来简化我们 的开发。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/465339.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux 应用调试神器- ASan

今天有小伙伴跟我他的程序崩溃了要怎么办,刚好我最近做项目使用到这个神器,做应用开发的同学可以看看,可以在C/C上配置使用。不过这仅限于调试,如果你是发布版本,一定要把这个功能关闭。当然,这是我实操的结…

asp.net验证提示美化效果

前段时间做了个ymPrompt提示效果的验证控件,ymPrompt是弹出提示的。弹出提示会增加无畏的鼠标点击动作。前段时间看到园里有位高手写了个纯cssjs的一个效果,我把它和asp.net验证控件结合起来,用这位高手写的效果做为asp.net难控件的提示效果。…

在Linux内核使用Kasan

昨天的文章发出来后,有同学在群里说内核也可以使用这个工具,所以再转发一篇wowo网站的文章,希望对大家有帮助。Linux 应用调试神器- ASan1. 前言KASAN是一个动态检测内存错误的工具。KASAN可以检测全局变量、栈、堆分配的内存发生越界访问等问…

跟韦老师聊了一个深夜

自从尚明从韦老师那边离职后,我已经很难得到韦老师的消息了,有时候我也想过去看下他,但是也很难抽的开时间。而且,我们两都挺技术的,如果见面后不知道聊什么,会不会有点尴尬。😄上面那个回复是我…

大厂不是铁饭碗

最近的事情有点多前段时间一个以前的朋友,买房找我咨询,问我恒大的房子能不能买,我当时没有给出明确的回复,但是也说了自己的看法。近些年房子越来越贵,我是从15年开始接触房子,不过我从没有想过靠房子来赚…

使用valgrind检测内存问题

valgrind是一款用于内存调试、内存泄漏检测以及性能分析的软件开发工具。1valgrind安装可以到官网下载最新的源码包:valgrind官网下载,也可以直接使用 c_utils/debug/valgrind 目录提供的 valgrind-3.13.0.tar.bz2 源码包。首先解压源码包tar xjf valgri…

项目中cxf和weblogic整合时报错的问题

GJYW项目使用的weblogic版本是10.3.6,cxf使用的版本是3.1.4 在将项目部署到weblogic服务器上时就会报错,通过下面的方式可以解决weblogic和cxf框架在一起报错的问题(解决了本项目报错的问题,未必全部适用):…

下周开幕!给深圳的嵌入式和电子工程师准备的嘉年华来了

我和电子圈老江认识了很久,应该是2012年,小龙第一次参加电子圈年会,那年他年会中奖的奖品送给我。后来,我也加入了电子圈的QQ群,早些年的时候,大家都喜欢在QQ群聊天,后来才慢慢转到微信群。老江…

AS3.0中的显示编程(末篇)-- 滤镜(下)

剩下的三种滤镜,因为我自己也不是很懂矩阵啊这些的,只能做些简单的范例和说明了,抱歉!颜色矩阵滤镜、卷积滤镜、置换图滤镜这三种滤镜只能通过AS代码实现。如果说上面的六种滤镜,只是在原图的基础上做些简单的修改&…

这几个朋友,我记得

‍‍昨天的中秋节是在公司加班度过的,末了,在群里看到有人说要是今天还有人加班的话,那他一定是真正的卷王,好了,我是那个中秋节加班的卷王。早上打车去公司,快到公司楼下的时候,司机师傅跟我说…

HOWTO:如何修改InstallShield的运行环境

版权声明: 可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息。在InstallShield中,存在一些运行环境的变量,如果我们做了某种选择,之后可能将不再提示,说不定什么时候又想改回来呢,找不到地…

深入理解Java线程池:ThreadPoolExecutor

线程池介绍 在web开发中,服务器需要接受并处理请求,所以会为一个请求来分配一个线程来进行处理。如果每次请求都新创建一个线程的话实现起来非常简便,但是存在一个问题: 如果并发的请求数量非常多,但每个线程执行的时间…

看嵌入式大神直播,送开发板!

这是一场嵌入式学习者不可错过的直播……以往拿到一个开发板,还要花费时间找资料,向有经验的朋友请教测试过程现在,在捷客直播间,嵌入式大神现场教学,手把手教你如何使用开发板开发一款智能设备9月26日晚,看…

java实现itchat_GitHub - Xiazki/itchat4j: wechatbot 的java实现,简单搭建了基本框架和实现了扫码登陆,具体网页微信api请参考...

itchat4j 微信自动回复机器人-------------- --------------- ---------------| | | | | || Get UUID | | Get Contact | | Status Notify || | | | | |------------- -------^------- -------^-------| | || ------- --------| | |-------v------ ------------- -------------…

华为宣布:免费培养8000名开发者! 学习免费!实验免费!考证免费!

很多朋友都想储备一些不同领域的新技术以便未来有更好的发展但目前市面上各种教程质量良莠不齐而且想要掌握高阶的开发技术需要耗费大量的时间和精力So,华为云特别推出 互联网技能加油站包含物联网、Python、AI等五大领域,核心技术赋能构建全面技能体系现…

送20个鼠标垫

之前发的朋友圈,里面晒了一个鼠标垫,大家都挺喜欢的,这次决定送30个给大家,没有什么规则,直接抽奖就好了。在下方的公众号回复【1001】获取抽奖小程序。因为之前好几次抽奖,因为时间比较长导致大家忘记填写…

越老越值钱,除了程序员!

-我们见过太多靠经验、资历“镀金”的职业。司机、教师、医生、律师、会计……这些职业的薪资待遇、社会地位、声誉等等都会随着从业时间的增长而变得越来越高、越来越好。“老”这个字,对于这类的职业来说,更像是褒奖。大家对于“资深”的他们&#xff…

Visual Studio 2010授权修改

为什么80%的码农都做不了架构师?>>> 参见以下步骤: 32位的系统中,修改以下注册表键值 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\10.0\Registration\UserName HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\Curr…

Net Core平台灵活简单的日志记录框架NLog+SqlServer初体验

Net Core平台灵活简单的日志记录框架NLogSqlServer初体验 前几天分享的"[Net Core平台灵活简单的日志记录框架NLogMysql组合初体验][http://www.cnblogs.com/yilezhu/p/9416439.html]" 反响还行。有网友就说有了NLogMySql的组合,那如果我是用SqlServer怎么…

从单片机步入Linux之文件系统的构建

大家好,我是情报小哥!本文为【从单片机步入嵌入式Linux】系列文章的第四篇文章,前面三篇大家有时间也可以回头阅读一下,本系列文章的很多知识我都会从裸机开发和理解的角度来分析,帮助大家迅速理解Linux系统相关的知识…