【spring】03 全面详解spring框架

什么是spring framework

spring framework是一个轻量级的基于IOC和AOP的面向j2ee系统的框架

  • 它是轻量级的松耦合的框架
  • 可以集合各种框架,比如mybatis和springMVC等,是框架的框架
  • 具有分层结构,允许用户自主选择组件

容器

在这里插入图片描述
Core Container

Spring的核心基础模块,提供IOC、DI、资源加载、事件支持等等。

spring core

spring bean

该容器的主要组件是BeanFactory,是工厂模式的实现,使用控制反转将程序的配置和规范和实际的应用程序代码分开

Spring Context

spring上下文是一个配置文件,提供上下文的服务

SpEL

spring表达语言,可以用来配置Bean定义

Data Access/Integration

JDBC

是java访问数据库的一套标准API,简化JDBC操作处理事务和异常

ORM

实体映射框架,如mybatis

Transations

Spring本身是没有事务一说的,数据库对事务的支持才是Spring事务的本质。

Web
Servlet

Servlet(Server Applet)是Java Servlet的简称,称为小服务程序或服务连接器,用Java编写的服务器端程序,具有独立于平台和协议的特性,主要功能在于交互式地浏览和生成数据,生成动态Web内容。

WebSocket

Spring 4.0 的一个最大更新是增加了对 Websocket 的支持。
Websocket 提供了一个在 Web 应用中实现高效、双向通讯,需考虑客户端(浏览器)和服务端之间高频和低延时消息交换的机制。
一般的应用场景有:在线交易、网页聊天、游戏、协作、数据可视化等。

spring-aop

分离横切关注点,将核心业务逻辑与其他公共逻辑解耦。

spring用到的设计模式

工厂模式
Spring使用工厂模式可以通过 BeanFactory 或 ApplicationContext 创建 bean 对象。

单例模式
spring用工厂创建的Bean也是单例的

代理模式
Spring AOP就是基于动态代理的,如果要代理的对象实现了某个接口,那么Spring AOP会使用JDK Proxy,去创建代理对象,而对于没有实现接口的对象,Spring AOP会使用Cglib,这时候Spring AOP会使用Cglib生成一个被代理对象的子类来作为代理

模板方法
Spring 中 jdbcTemplate、hibernateTemplate 等以 Template 结尾的对数据库操作的类,它们就使用到了模板模式。还有 RestTemplate、JmsTemplate。

观察者模式
Spring 事件驱动模型就是观察者模式很经典的一个应用。

适配器模式
我们知道 Spring AOP 的实现是基于代理模式,但是 Spring AOP 的增强或通知(Advice)使用到了适配器模式,与之相关的接口是AdvisorAdapter 。

spring IOC

https://blog.csdn.net/yujing1314/article/details/106903177

spring 有哪些配置方式

  1. XML 配置文件。
    Bean所需的服务和依赖都配置在xml中
<bean id="studentBean" class="org.edureka.firstSpring.StudentBean">
    <property name="name" value="Edureka"></property>
</bean>
  1. 注解配置。
    spring默认没有开启注解配置,需要先开启
<beans>
<context:annotation-config/>
<!-- bean definitions go here -->
</beans>
  1. Java Config 配置。
    Spring 的 Java 配置是通过使用 @Bean 和 @Configuration 来实现。
//该注解表示这个类为javaConfig类
@Configuration
public class MyConfig {
    //该注解表示:向容器中注册一个叫做cycle的对象
    @Bean("cycle")
    public Car getCycle() {
        return new Car("二八大杠","2");
    }

在xml增加包扫描

<context:component-scan base-package="com.lzl.spring" />

测试

 //读取配置文件
        ApplicationContext ctx=new ClassPathXmlApplicationContext("spring-config.xml");
        Cycle cycle= ctx.getBean("cycle", Cycle.class);
        System.out.println(cycle);

就可以获取cycle的对象信息了

spring Bean的生命周期

实例化 -> 属性赋值 -> 初始化 -> 销毁
在这里插入图片描述
什么是 Spring 装配?
当 Bean 在 Spring 容器中组合在一起时,它被称为装配或 Bean 装配

猜你喜欢

转载自blog.csdn.net/yujing1314/article/details/107348002