1 spring基本理念是简化java开发。

使用以下4个策略简化java开发

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

2)通过使用DI和AOP实现松耦合

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

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

2 依赖注入:对象的依赖关系将由负责协调系统中各个对象的第三方组件在创建对象时设定。对象无需自行创建或管理他们的依赖关系---依赖关系将会被自动注入到需要他们的对象中。

3 装配:创建应用组件之间协作的行为称为装配。

4 面向切面编程被定义为促使应用程序分离关注点的一项技术。横切关注点总是跨越系统的多个组件。

主要作用是帮助对象解耦。

5 使用模板消除样板式代码。比如jJDBC/JMS/JNDI/REST都是使用模板代码的场景。

6 spring 容器,负责创建对象、装配他们,配置它们并管理他们的整个生命周期。

spring容器可以分为两种类型,bean工厂和ApplicationContext。一般更倾向使用ApplicationContext.

常见的有AnnotationConfigApplicationContext/AnnotationConfigWebApplicationContext/ClassPathXmlApplicationContext/FileSystemXmlApplicationContext/XmlWebApplicationContext

ClassPathXmlApplicationContext是在所有类路径下查找文件上下文。

7 bean对象的配置,三种方法。1)自动化装配 2)通过java代码装配bean 3)通过xml装配bean

7.1 自动化装配

@Component在一个类上面使用,在类上使用表明该类是一个组件类,不过组件扫描默认是不开启的。

可以使用如下技术进行开启扫描

@Configuration
@ComponentScan
public class PlayerConfig {
}
@ComponentScan默认会扫描与配置类相同的包以及这个包下所有子包。

当然也可以在xml配置文件中使用<context:component-scan />元素开启扫描。

为组件扫描的bean命名。可以有两种方式
1)@Component("lonelyHeartsClub")
2)@Named("lonelyHeartsClub")
字符串相当于是xml配置文件中的id

一般使用第一种方式。

7.1.1 组件扫描(component scanning)

7.1.2 自动装配(autowiring)

自动装配就是让Spring自动满足bean依赖的一种方法,在满足依赖的过程中,会在spring应用上下文寻找匹配某个bean需求的其他bean。

关键词:@Autowired,@Inject。不过一般使用第一种方式。

说明:

1)如果没有发现需要的bean,spring会抛出异常。

spring in action第一章小结1的更多相关文章

  1. Spring in Action --- 第一章 简介

    简化java开发 基于POJO的轻量级和最小入侵性编程 通过依赖注入和面向接口实现松耦合 基于切面和管理进行声明式编程 通过切面和模板减少样板式代码 bean的生命周期 Spring对bean进行实例 ...

  2. Spring in Action 第一章 Spring之旅

    1.1 简化Java开发 1.1.2 依赖注入(DI) 松耦合:如果一个对象只通过接口(而不是具体实现或初始化过程)来表明依赖关系,那么这种依赖就能在对象本身毫不知情的情况下,用不同的具体实现进行替代 ...

  3. Unity 游戏框架搭建 2019 (九~十二) 第一章小结&第二章简介&第八个示例

    第一章小结 为了强化教程的重点,会在合适的时候进行总结与快速复习. 第二章 简介 在第一章我们做了知识库的准备,从而让我们更高效地收集示例. 在第二章,我们就用准备好的导出工具试着收集几个示例,这些示 ...

  4. 《SDN核心技术剖析和实战指南》第一章小结

    第一章主要是概况.新技术有一个特点是,每家都有不同的说法.这里我只说说我比较认同的部分. SDN的核心概念大概有两个:转发面与控制面分离.开发可编程化.书里还说逻辑上集中控制,其实这个就可以从转发与控 ...

  5. 学习spring in action 第一天

    这段时间,开始学习java吧,因为C sharp 学习了java的大量语法格式,所以,留意下,就不会错了,java 有的c sharp也有,而且之前我也学习过java的桌面开发,但是一下子上来就要自己 ...

  6. 《STL源码剖析》学习半生记:第一章小结与反思

    不学STL,无以立.--陈轶阳 从1.1节到1.8节大部分都是从各方面介绍STL, 包括历史之类的(大致上是这样,因为实在看不下去我就直接略到了1.9节(其实还有一点1.8.3的内容)). 第一章里比 ...

  7. spring in action 7.2 小结

    1 对于二进制文件上传功能的实现.在spring中使用multipart来处理,处理方式有两种. CommonsMultipartResolver:使用Jakarta Commons FileUplo ...

  8. spring in action 5.1 小结 spring mvc起步

    0 配置 DispatcherServlet 是 spring mvc的核心,常规配置方法可以查看之前博客.springMVC简单例子 在此使用servlet 3 规范和 spring3.1 功能增强 ...

  9. 8.HBase In Action 第一章-HBase简介(1.2.2 捕获增量数据)

    Data often trickles in and is added to an existing data store for further usage, such as analytics, ...

随机推荐

  1. 陈立伟 - MultiCharts快易通(2013年8月2日)

    <MultiCharts快易通> 作 者:陈立伟 译 者: 系 列:寰宇程式交易312--挑战程式交易系列1 出 版:寰宇出版股份有限公司 字 数:千字 阅读完成:2013年8月2日

  2. CentOS通过日志反查入侵(转)

    1.查看日志文件 Linux查看/var/log/wtmp文件查看可疑IP登陆 last -f /var/log/wtmp  该日志文件永久记录每个用户登录.注销及系统的启动.停机的事件.因此随着系统 ...

  3. 利用cURL请外部接口

    昨天有一个需求,就是需要把获取到的百度地图信息存储到百度地图LBS云储存上 看了一下LBS云储存,说白了就是通过接口操作云数据库,所以写了一个通用的cURL函数 代码如下: /** * @param ...

  4. java通过UUID生成16位唯一订单号

    import java.util.UUID; public class T { public static String getOrderIdByUUId() { int machineId = 1; ...

  5. IIS_未能映射路径“/”。

      解决方法: 使用托管管道默认是为[经典]的应用程序池

  6. ocx控件打印之基础篇

      Visual C++6.0是开发Windows应用程序的强大工具,但是要通过它实现程序的打印功能,一直是初学者的一个难点,经常有朋友询问如何在VC中实现打印功能,他们往往感到在MFC提供的框架内实 ...

  7. Eclipse 生成WebService客户端代码

    1. 打开Eclipse,新建一个普通的Javaproject,然后在新建的项目上右键点击项目,New---->other---->Web Services -------->Web ...

  8. [Android Pro] Android学习——在线查看android源代码的3种方式

    原文:http://blog.csdn.net/chuekup/article/details/8067075 1. https://github.com/android 2. http://grep ...

  9. unity GI

    占坑 lightmapper有两种:  Enlighten, Progressive Enlighten: baked GI  静态物体 离线烘焙 precomputed GI 也是适用于静态物体 F ...

  10. Android studio 和 Eclipse快捷键对比

    操作 studio eclipse   debug/run 计算变量值 alt+F8 ctrl+shift+I 跳到下一步 F8 F6 跳到下一个断点 shift+F8 F8 进入到代码 F7 F5 ...