JAY站

Valar Morghulis Valar Dohaeris

静下心来,用心观察 处处都透着生活的美.


Spring初识

新手入门认识,有认识错误,请严厉批评

spring-framework-runtime

核心概念

  • IoC
  • AOP

IoC核心是 顶层 组件与应用的基础,所有的其他功能都是在这个基础上面发展而来的。

Ioc

控制反转 也可以说是 依赖注入DI 。 通俗的将,以前我们写代码,需要自己管理 一个对象的生命周期,初始化,销毁,各个对象的以来管理。

小项目还好,如果一个项目庞大起来,整个对象关系就好像一张密密麻麻的蜘蛛网一样, 只是建立 对象的依赖就已经很耗费精力了。

而 Spring 的IoC这一功能,将程序员从这一繁重的业务中解脱出来,对象的管理都放在了Spring自己的BEAN 容器中处理。

我们只需要配置好 Context xml的配置文件就可以在代码中轻松的使用这些对象了。

也同时 有利于 模块的解耦


  • Spring BeanFactory 容器
  • Spring ApplicationContext 容器

  • 定义
  • 作用域
  • 生命周期
  • 后置处理器
  • 实例化
  • 配置
  • 装配
  • 注入
  • 构造注入
  • 属性注入
  • 注解

AOP

面向切面编程,与平时的OOP 面向对象编程 区分开来的思想,是OOP的补充 ,它是利用动态代理 实现的

技术点

  • 动态代理

解决的问题或者说应用场景 主要是为了处理业务的交叉关注点问题,比如一些公共服务

  • 日志收集
  • 缓存
  • 事务管理
  • 安全检查
  • 对象池管理

    对象池化的基本思路是:创建多个对象并管理,使用时借出对象,用完归还对象,等下一次需要这种对象的时候,再拿出来重复使用,从而在一定程度上减少频繁创建对象所造成的开销。用于充当保存对象的“容器”的对象,被称为“对象池”(Object Pool,或简称Pool)。

    spring不是真正意义上的对象池,它只是一个对象管理的容器。 因为spring容器里面大部分是 singleton 或者 prototype 没有状态的区分。这也是它效率不好的地方。

Spring 层次

大略分为下面几层 ,一共20多个模块

  • 核心 Core
  • AOP
  • data access
  • web

核心模块

核心组件

  • Context: 也就是 IoC容器
  • Bean : 对象通过配置文件的方式,由Spring来管理对象存储空间,生命周期的分配
  • Core : Spring 发现、建立和维护Bean之间关系的一揽子工具,其中最重要的是 Resource

三者是相互联系,依赖的

spring-dependency

aop

  • AOP
  • Aspects
  • Instrumentation
  • Messaging

spring-dependency-aop

持久层

  • JDBC java 关于数据库连接的api接口
  • ORM 关系型数据库
  • OXM
  • JMS 消息队列
  • Transactions 事务管理

spring-dependency-full

Web

  • web
  • Servlet
  • Portlet
  • Structs –> WebSocket

spring-dependency-web

spring-dependency-messaging

参考链接

spring framework体系结构及内部各模块jar之间的maven依赖关系

最近的文章

Host Ip

https://manajay—layout: posttitle: hosttag: 网络date: 2017-06-12 09:04:46 +09:00—概念hosts文件是一个用于储存计算机网络中各节点信息的计算机文件。这个文件负责将主机名称映射到相应的IP地址。hosts文件通常用于补充或取代网络中DNS的功能。和DNS不同的是,计算机的用户可以直接对hosts文件进行控制。hosts文件 - 维基百科 hosts文件也可以用于其它情况,例如可以将已知的广告服务器重定向到无广告的...…

继续阅读
更早的文章

protobuf-简单使用

本文章只用来记录临时笔记,后续完善protobuf 数据传输协议 同类型的有 XML Json Objective-C的使用 运行环境 使用homebrew安装 ,如果不懂,看完其他文章 homebrew install protobuf OC插件下载地址 protobuf-objectivec-3.4.0.tar.gz , 安装方法:// cd到插件文件夹,我的下载到桌面安装cd ~/Desktop/protobuf-objectivec// 执...…

iOS数据传输继续阅读