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 @ComponentScanpublic 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会抛出异常。
Atas ialah kandungan terperinci 关于spring的基本理念详解. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!