WB
WB
文章目录
  1. 1. Java Spring
    1. 1.1. 基础
      1. 1.1.1. 1.Spring 是什么?特性?有哪些模块?
      2. 1.1.2. 2、Spring 有哪些常用注解呢?
      3. 1.1.3. 4.Spring 中应用了哪些设计模式呢?
      4. 1.1.4. 5.说一说什么是 IoC?什么是 DI?
      5. 1.1.5. SpringMVC
      6. 1.1.6. SpringBoot

(no title)

Java Spring

基础

1.Spring 是什么?特性?有哪些模块?

一句话概括:Spring 是一个轻量级、非入侵式的控制反转 (IoC) 和面向切面 (AOP) 的框架。

最主要的七大模块:

  • Spring Core:Spring 核心,它是框架最基础的部分,提供 IoC 和依赖注入 DI 特性。
  • Spring Context:Spring 上下文容器,它是 BeanFactory 功能加强的一个子接口。
  • Spring Web:它提供 Web 应用开发的支持。
  • Spring MVC:它针对 Web 应用中 MVC 思想的实现。
  • Spring DAO:提供对 JDBC 抽象层,简化了 JDBC 编码,同时,编码更具有健壮性。
  • Spring ORM:它支持用于流行的 ORM 框架的整合,比如:Spring + Hibernate、Spring + iBatis、Spring + JDO 的整合等。
  • Spring AOP:即面向切面编程,它提供了与 AOP 联盟兼容的编程实现。

2、Spring 有哪些常用注解呢?

Spring 提供了大量的注解来简化 Java 应用的开发和配置,主要用于 Web 开发、往容器注入 Bean、AOP、事务控制等。

Web类

  • @Controller:用于标注控制层组件。

  • @RestController:是@Controller@ResponseBody 的结合体,返回 JSON 数据时使用。

  • @RequestMapping:用于映射请求 URL 到具体的方法上,还可以细分为:

    • @GetMapping:只能用于处理 GET 请求

    • @PostMapping:只能用于处理 POST 请求

    • @DeleteMapping:只能用于处理 DELETE 请求

  • @ResponseBody:直接将返回的数据放入 HTTP 响应正文中,一般用于返回 JSON 数据。

  • @RequestBody:表示一个方法参数应该绑定到 Web 请求体。

  • @PathVariable:用于接收路径参数,比如 @RequestMapping(“/hello/{name}”),这里的 name 就是路径参数。

  • @RequestParam:用于接收请求参数。比如 @RequestParam(name = "key") String key,这里的 key 就是请求参数。

容器类

  • @Component:标识一个类为 Spring 组件,使其能够被 Spring 容器自动扫描和管理。
  • @Service:标识一个业务逻辑组件(服务层)。比如 @Service("userService"),这里的 userService 就是 Bean 的名称。
  • @Repository:标识一个数据访问组件(持久层)。
  • @Autowired:按类型自动注入依赖。
  • @Configuration:用于定义配置类,可替换 XML 配置文件。
  • @Value:用于将 Spring Boot 中 application.properties 配置的属性值赋值给变量。

AOP

@Aspect 用于声明一个切面,可以配合其他注解一起使用,比如:

  • @After:在方法执行之后执行。
  • @Before:在方法执行之前执行。
  • @Around:方法前后均执行。
  • @PointCut:定义切点,指定需要拦截的方法。

事务注解

主要就是 @Transactional,用于声明一个方法需要事务支持。

4.Spring 中应用了哪些设计模式呢?

Spring 框架中用了蛮多设计模式的:

  • 工厂模式:IoC 容器本身可以看作是一个巨大的工厂,负责创建和管理 Bean 的生命周期和依赖关系。

  • 像 BeanFactory 和 ApplicationContext 接口都提供了工厂模式的实现,负责实例化、配置和组装 Bean。

  • 代理模式:AOP 的实现就是基于代理模式的,如果配置了事务管理,Spring 会使用代理模式创建一个连接数据库的代理对象,来进行事务管理。

  • 单例模式:Spring 容器中的 Bean 默认都是单例的,这样可以保证 Bean 的唯一性,减少系统开销。

  • 模板模式:Spring 中的 JdbcTemplate,HibernateTemplate 等以 Template 结尾的类,都使用了模板方法模式。

    比如,我们使用 JdbcTemplate,只需要提供 SQL 语句和需要的参数就可以了,至于如何创建连接、执行 SQL、处理结果集等都由 JdbcTemplate 这个模板方法来完成。

  • 观察者模式:Spring 事件驱动模型就是观察者模式很经典的一个应用,Spring 中的 ApplicationListener 就是观察者,当有事件(ApplicationEvent)被发布,ApplicationListener 就能接收到信息。

  • 适配器模式:Spring MVC 中的 HandlerAdapter 就用了适配器模式。它允许 DispatcherServlet 通过统一的适配器接口与多种类型的请求处理器进行交互。

  • 策略模式:Spring 中有一个 Resource 接口,它的不同实现类,会根据不同的策略去访问资源。

1
2
3
4
5
6
7
8
public interface ResourceLoader {

String CLASSPATH_URL_PREFIX = ResourceUtils.CLASSPATH_URL_PREFIX;

Resource getResource(String location);

ClassLoader getClassLoader();
}

5.说一说什么是 IoC?什么是 DI?

IoC(控制反转,Inversion of Control),就是由容器来控制对象的生命周期和对象之间的关系。以前是我们想要什么就自己创建什么,现在是我们需要什么容器就帮我们送来什么。

DI(依赖注入,Dependency Injection):有人说 IoC 和 DI 是一回事,有人说 IoC 是思想,DI 是 IoC 的实现。2004 年,Martin Fowler 在他的文章《控制反转容器&依赖注入模式》首次提出了依赖注入这个名词。

SpringMVC

SpringBoot

支持一下
扫一扫,支持一下
  • 微信扫一扫
  • 支付宝扫一扫