Java Web —— 第四天(Spring)

官网: http://spring.io

SpringBootWeb快速入门

1.创建springboot工程,并勾选web开发相关依赖

2.定义HelloController类,添加方法 hello,并添加注解

//请求处理类
@RestController
public class HelloController {
    @RequestMapping("/hello")
    public String hello(){
        System.out.println("hello world");
        return "hello world";
    }
}

3.运行测试

Spring是什么?

Spring是一款主流的Java EE 轻量级开源框架,Spring 由“Spring 之父“RodJohnson 提出并创立,其目的是用于简化Java 企业级应用的开发难度和开发周期。Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松合的角度而言,任何Java应用都可以从spring中受益。Spring 框架除了自己提供功能外,还提供整合其他技术和框架的能力。

Spring的广义和狭义

广义的 Spring: Spring 技术栈

广义上的 Spring 泛指以Spring Framework 为核心的 Spring 技术栈。

经过十多年的发展,Spring 已经不再是一个单纯的应用框架,而是逐渐发展成为一个由多个不同子项目(模块)组成的成熟技术,例如 Spring Framework、 Spring MVC、SpringBoot、 Spring Cloud、Spring Data、 SpringSecurity 等,其中Spring Framework 是其他子项目的基础

狭义的 Spring: Spring Framework

狭义的 Spring 特指 Spring Framework,通常我们将它称为 Spring 框架

Spring 框架是一个分层的、面向切面的Java 应用程序的一站式轻量级解决方案,它是 Spring 技术栈的核心和基础,是为了解决企业级应用开发的复杂性而创建的。
Spring 有两个最核心模块: IoC和 AOP
loC: Inverse of Control的简写,译为“控制反转”,指把创建对象过程交给 Spring 进行管理
AOP: Aspect Oriented Programming 的简写,译为“面向切面编程”。AOP 用来封装多个类的公共行为,将那些与业务无关,却为业务模块所共同调用的逻辑封装起来,减少系统的重复代码,降低模块间的耦合度。另外,AOP 还解决一些系统层面上的问题,比如日志、事务、权限等。

Spring Framework特点
非侵入式: 使用 Spring Framework 开发应用程序时,Spring 对应用程序本身的结构影响非常小。对领域模型可以做到零污染,对功能性组件也只需要使用几个简单的注解进行标记,完全不会破坏原有结构,反而能将组件结构进一步简化。这就使得基于 Spring Framework 开发应用程序时结构清晰、简洁优雅。

控制反转:IoC--Inversion of Control,翻转资源获取方向。把自己创建资源、向环境索取资源变成环境将资源准备好,我们享受资源注入。

面向切面编程: AOP--Aspect Oriented Programming,在不修改源代码的基础上增强代码功能。

容器: Spring IoC 是一个容器,因为它包含并且管理组件对象的生命周期。组件享受到了容器化的管理,替程序员屏蔽了组件创建过程中的大量细节,极大的降低了使用门槛,大幅度提高了开发效率。

组件化:Spring 实现了使用简单的组件配置组合成一个复杂的应用。在 Spring 中可以使用 XML和Java 注解组合这些对象。这使得我们可以基于一个个功能明确、边界清晰的组件有条不紊的搭建超大型复杂应用系统。

一站式:在IoC 和AOP 的基础上可以整合各种企业应用的开源框架和优秀的第三方类库。而且 Spring 旗下的项目已经覆盖了广泛领域,很多方面的功能性需求可以在 Spring Framework 的基础上全部使用 Spring 来实现。

Spring模块组成

Spring 是一个流行的 Java 应用程序框架,提供了全面的基础设施支持来开发 Java 应用程序。它的模块化设计使得开发人员可以根据需要选择和使用特定的模块。以下是 Spring 框架的主要组成模块:

  1. Core Container

    • Spring Core:提供核心功能,包括依赖注入(Dependency Injection,DI)机制。
    • Spring Beans:用于管理和配置应用程序的 beans。
    • Spring Context:提供更高级的特性,如事件传递、资源加载和国际化支持。
    • Spring Expression Language (SpEL):提供强大的表达式语言,用于在运行时查询和操作对象图。
  2. Data Access/Integration

    • JDBC:简化了 JDBC 操作,并提供了异常处理和资源管理。
    • ORM:支持各种 ORM 框架,如 Hibernate、JPA、MyBatis 等。
    • OXM (Object/XML Mapping):支持对象到 XML 的映射。
    • JMS (Java Message Service):用于消息传递和异步通信。
    • Transaction:提供统一的事务管理接口,支持声明式事务管理。
  3. Web

    • Spring Web:提供基本的 web 集成功能,如多文件上传、初始化参数处理和上下文启动监听器。
    • Spring Web MVC:实现了 Model-View-Controller (MVC) 模式,用于构建 web 应用程序。
    • Spring WebFlux:用于构建响应式的 web 应用程序,支持非阻塞式编程模型。
  4. AOP (Aspect-Oriented Programming)

    • Spring AOP:提供面向切面编程的实现,允许分离跨领域关注点,如事务管理、日志记录和安全。
  5. Instrumentation

    • Spring Instrument:提供类工具和代理,支持在应用程序服务器中使用 Spring。
  6. Messaging

    • Spring Messaging:提供对 STOMP、WebSocket 等消息传递协议的支持。
  7. Test

    • Spring Test:提供对测试功能的支持,包括支持 JUnit 和 TestNG,简化集成测试和单元测试。

此外,Spring 生态系统还包括许多扩展项目,如 Spring Boot、Spring Cloud、Spring Security、Spring Data 和 Spring Batch 等,这些项目进一步增强了 Spring 框架的功能,适用于不同类型的应用场景。

入门案例开发步骤
第一步         引入spring相关依赖


第二步         创建类,定义属性和方法


第三步         按照spring要求创建配置文件 (xml格式)


第四步         在spring配置文件配置相关信息


第五步         进行最终测试

启用Log4j2日志框架

Log4j2日志概述

在项目开发中,日志十分的重要,不管是记录运行情况还是定位线上问题,都离不开对日志的分析。日志记录了系统行为的时间、地点、状态等相关信息,能够帮助我们了解并监控系统状态,在发生错误或者接近某种危险状态时能够及时提醒我们处理,同时在系统产生问题时,能够帮助我们快速的定位、诊断并解决问题。
Apache Log4j2是一个开源的日志记录组件,使用非常的广泛。在工程中以易用方便代替了 System.out 等打印语句,它是JAVA下最流行的日志输入工具。

Log4j2主要由几个重要的组件构成:

日志信息的优先级:日志信息的优先级从高到低有

TRACE< DEBUG <INFO<WARN<ERROR<FATAL

TRACE: 追踪,是最低的日志级别,相当于追踪程序的执行

DEBUG: 调试,一般在开发中,都将其设置为最低的日志级别

INFO: 信息,输出重要的信息,使用较多

WARN: 警告,输出警告的信息

ERROR: 错误,输出错误信息

FATAL: 严重错误

日志信息的输出目的地:日志信息的输出目的地指定了日志将打印到控制台还是文件中

日志信息的输出格式:而输出格式则控制了日志信息的显示内容。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

卤鸭的笔记本

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值