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来简化我们 的开发。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值