1.Spring
1.什么是spring?
-
一个轻量级Java开发框架,目的是为了解决企业级应用开发 的业务逻辑层和其他各层的耦合问题.
-
两个核心特性,也就是依赖注入(dependency injection,DI)和面向切面编程(aspect- oriented programming,AOP)
2.IOC(控制翻转)
- Inversion of control(控制反转): 是一种面向对象的编程思想。就是对组件对象控制权的转移,从程序代码本身转移到了外部容器。Spring IOC 负责创建对象,管理对象(通过依赖注入(DI),装配对象,配置对象,并且管理这 些对象的整个生命周期。
- Dependency Injection(依赖注入): 是IOC思想的实现方式。即组件之间的依赖关系由容器在应用系统运行期来决定,也就是 由容器动态地将某种依赖关系的目标对象实例注入到应用系统中的各个关联的组件之中。
- IOC container:本质上是一个工厂。 提供了控制反转功能,用来把应用的配置和依赖从真正的应用 代码中分离
- 优点:
- 举个例子:
3.Bean类
-
Spring 应用程序有哪些不同组件:
-
接口 - 定义功能。
-
Bean 类 - 它包含属性,setter 和 getter 方法,函数等。
-
Bean 配置文件 - 包含类的信息以及如何配置它们。
-
Spring 面向切面编程(AOP) - 提供面向切面编程的功能。
-
用户程序 - 它使用接口。
-
-
什么是 Spring beans:Spring beans 是那些形成 Spring 应用的主干的 java 对象(各种类 dao,controller,service)。它们被 Spring IOC 容 器初始化,装配,和管理。Spring 框架定义的beans都是单件beans。在beantag中有个属性”singleton”。
-
如何给 Spring 容器提供配置元数据:XML 配置文件、基于注解的配置、 基于 java 的配置。
-
Spring 框架中的单例 bean 是线程安全的吗:不是
-
什么是 bean 装配:指在 Spring 容器中把 bean 组装到一起,前提是容器需要知 道 bean 的依赖关系
4.Spring 注解
-
@Component:这将 java 类标记为 bean。它是任何 Spring 管理组件的通用构造型。spring 的 组件扫描机制现在可以将其拾取并将其拉入应用程序环境中。
-
@Controller:该注解表明该类扮演控制器的角色.
-
@Service:该注解表明该类扮演业务处理的角色
-
@Repository:该注解表明该类扮演连通数据库的角色
-
@Required :这个注解表明 bean 的属性必须在配置的时候设置,通过一个 bean 定义的显式的属 性值或通过自动装配,若@Required 注解的 bean 属性未被设置,容器将抛出 BeanInitializationException。
-
@Autowired :即自动装配 默认是按照类型装配注入的,默认情况下它要求依赖对象必须存在(可以设置它 required属性为false)。@Autowired 注解提供了更细粒度的控制,包括在何处以及如何完成自 动装配。它的用法和@Required一样,修饰setter方法、构造器、属性或者具有任意名称和/或多 个参数的PN方法。
-
@Qualifier :
当您创建多个相同类型的 bean 并希望仅使用属性装配其中一个 bean 时,您可以使用@Qualifier注解和 @Autowired 通过指定应该装配哪个确切的 bean 来消除歧义。
-
@RequestMapping : 用于将特定 HTTP 请求方法映射到将处理相应请求的控制器中的特定类/ 方法。此注释可应用于两个级别:
类级别:映射请求的 URL
方法级别:映射 URL 以及 HTTP 请求方法
5.简单调用过程