Spring是什么?
简单说,是一个开源框架,是一个企业轻量级的应用开发框架,可以用简单的JavaBean来代替原来EJB的工作.
Spring里不得不谈的概念?
DI(依赖注入)----解决耦合问题的技术,提供对象间松耦合,对象的实例化的时候相关依赖类的注入是主动的,而不是被动寻找。对象间的依赖关系不是硬编码,而是通过XML 文件装配的。
AOP(面向切面)----就是将具体的通用的应用从业务逻辑中分离出来,各自做各自专业的事情。其实跟我们原来用C写程序一样,都会将通用的日志、监控功能单独出来成为模块。只不过在SPRING 中这种关联也是通过XML文件管理。
Spring能做什么?
1 Spring是一个bean容器,可以管理所有的bean.
2 我们通常采用的架构SSH,就是发挥了Spring的容器管理和事物管理功能,它可以与多种ORM模块继承.
3 本身SpringMVC也是SSH替换的一种方案.
总之,我们可以用它来构建各种企业应用,足够了,除非你的企业应用非常复杂,比如银行业务.
一般的网站平台足够了.
企业级应用中DI应用举例:
DI应用更多体现了面向接口编程的概念,最大优点就是松耦合。
比如我们写一个在线订购应用,需要一个订单服务组建来处理所有与订单有关的函数。
通常我们有几种办法:
1 在需要的时候实例化一个组件;
2 通过JNDI检索该服务接口,如果该服务是通过EJB2.0实现;
3 如果通过EJB3,可以通过JNDI直接访问该问题,不需要主接口;
通过DI应用来看看:
public class Checkout {
private Orderservice Orderservice;
public Orderservice getOrderservice() {
return Orderservice;
}
public void setOrderservice(Orderservice orderservice) {
Orderservice = orderservice;
}
}
applicationContext.xml中
<bean id="Checkout" name="/Checkout" class="Checkout" abstract="false"
lazy-init="default" autowire="default" dependency-check="default">
<property name="Orderservice">
<ref bean="Orderservice" />
</property>
</bean>
这种注入是在XML中实现装配的.
当然这里应该采用面向接口编成的技术,即Orderservice是一个接口,装配的时候可以是这个接口的任何实现,这样完全松耦合.

转载于:https://blog.51cto.com/miao7616/675329

茶余饭后聊Spring 一相关推荐

  1. 瞎聊Spring Cloud

    Spring Cloud在国内中小型公司能用起来吗?-纯洁的微笑 中小型互联网公司微服务实践-经验和教训-纯洁的微笑 从架构演进的角度聊聊Spring Cloud都做了些什么?-纯洁的微笑 为什么说 ...

  2. 朱晔和你聊Spring系列S1E7:简单好用的Spring Boot Actuator

    本文会来看一下Spring Boot Actuator提供给我们的监控端点Endpoint.健康检查Health和打点指标Metrics等所谓的Production-ready(生产环境必要的一些)功 ...

  3. 朱晔和你聊Spring系列S1E3:Spring咖啡罐里的豆子

    标题中的咖啡罐指的是Spring容器,容器里装的当然就是被称作Bean的豆子.本文我们会以一个最基本的例子来熟悉Spring的容器管理和扩展点. 阅读PDF版本 为什么要让容器来管理对象? 首先我们来 ...

  4. 再聊Spring Bean的生命周期

    Spring Bean的生命周期是Spring面试热点问题.这个问题即考察对Spring的微观了解,又考察对Spring的宏观认识,想要答好并不容易!本文希望能够从源码角度入手,帮助面试者彻底搞定Sp ...

  5. 朱晔和你聊Spring系列S1E9:聊聊Spring的那些注解

    本文我们来梳理一下Spring的那些注解,如下图所示,大概从几方面列出了Spring的一些注解: 如果此图看不清楚也没事,请运行下面的代码输出所有的结果. Spring目前的趋势是使用注解结合Java ...

  6. 朱晔和你聊Spring系列S1E11:小测Spring Cloud Kubernetes @ 阿里云K8S

    有关Spring Cloud Kubernetes(以下简称SCK)详见https://github.com/spring-cloud/spring-cloud-kubernetes,在本文中我们主要 ...

  7. springboot 启动时could not exec java_面试被问为什么使用Spring Boot?答案好像没那么简单...

    公众号[JavaQ]原创,专注分享Java基础原理分析.实战技术.微服务架构.分布式系统构建,诚邀点赞关注! 面试官:项目中有使用Spring Boot吗? 小小白:用过. 面试官:说一下为什么要使用 ...

  8. Spring Boot 2.0 新特性(二):新增事件ApplicationStartedEvent

    今天继续来聊Spring Boot 2.0的新特性.本文将具体说说2.0版本中的事件模型,尤其是新增的事件: ApplicationStartedEvent. 原文首发:http://blog.did ...

  9. Spring核心知识点总结

    本文记录Spring全家桶核心知识点 文章目录 Spring总览 Spring IOC相关 Spring AOP相关 Spring总览 记录下spring总体相关的知识 题目 链接地址 Spring核 ...

  10. Spring中的AOP以及切入点表达式和各种通知

    视频功能审核通过了,可以看视频啦!记得点关注啊~ 注意:因为网络原因,视频前一两分钟可能会比较模糊,过一会儿就好了 记得点关注啊,视频里的wx二维码失效了,wx搜索:"聊5毛钱的java&q ...

最新文章

  1. Cisco堆叠交换机序号的改变
  2. 【二叉查找树BST】二叉查找树的基本操作总结
  3. Centos7单用户模式修改root密码
  4. java 委托_面试官:java双亲委派机制及作用
  5. DOM-11 【兼容】鼠标行为坐标系、pageXY封装、拖拽函数封装
  6. linux 批量替换文件内容及查找某目录下所有包含某字符串的文件(批量修改文件内容)...
  7. gridview中的种种超级链接
  8. GO语言环境搭建 及 helloworld开发
  9. Hibernate Session和Jpa EntityManager
  10. 条形图设置颜色Java_java – 如何在条形图中显示每个条形的条形值?
  11. python---python3 获取当前路径及os.path.dirname的使用;os.path.abspath(__file__)用法及意义
  12. C# 高效字符串连接 StringBuilder介绍
  13. kubernetes 删除容器 docker rmi Error response from daemon: conflict: container is using its referenced
  14. 【BZOJ3162】独钓寒江雪 树同构+DP
  15. 短短六年时间冲到二奢品类第一,妃鱼如何做到的?
  16. Hadamard矩阵和Kronecker积
  17. 诺基亚 Lumia 1020的价格
  18. 熵、图像熵的意义及计算方法
  19. 喜 欢 和 爱 的 区 别(转)
  20. 【数据聚类】基于蝙蝠算法实现数据聚类附matlab代码

热门文章

  1. 列表、元组、字典、集合的定义与操作
  2. codevs——T1048 石子归并
  3. ZH奶酪:PHP中添加HTML代码的三种方法
  4. Android系统自带样式(@android:style/) (转)
  5. 软件项目管理原则谈-转自51testing
  6. SQL Server置疑数据库解决方法
  7. javascript数据类型(摘录)
  8. 网上的一个PHP分页函数,测试可用
  9. Web Service初探
  10. 判断一个字符串(str)是否以指定的字符串(target)结尾。 如果是,返回true;如果不是,返回false。...