软件设计之SSM(10)

软件设计之SSM(10)

路线图推荐:
【Java学习路线-极速版】【Java架构师技术图谱】
尚硅谷新版SSM框架全套视频教程,Spring6+SpringBoot3最新SSM企业级开发
资料可以去尚硅谷官网免费领取

学习内容:

SpringMVC

  1. 转发与重定向
  2. 返回JSON数据
  3. 返回静态资源处理
  4. SSM整合问题
  5. Springboot快速入门

1、转发与重定向

在 Spring MVC 中,Handler 方法返回值来实现快速转发,可以使用 redirect 或者 forward 关键字来实现重定向。

@RequestMapping("/redirect-demo")
public String redirectDemo() {
    // 重定向到 /demo 路径 
    return "redirect:/demo";
}

@RequestMapping("/forward-demo")
public String forwardDemo() {
    // 转发到 /demo 路径
    return "forward:/demo";
}

//注意: 转发和重定向到项目下资源路径都是相同,都不需要添加项目根路径!填写项目下路径即可!

2、返回JSON数据

前置:在接收JSON时的配置要保留,即:引入依赖添加json数据转化器

在方法上使用 @ResponseBody注解,用于将方法返回的对象序列化为 JSON 或 XML 格式的数据,并发送给客户端

@RequestMapping(value = "/user/detail", method = RequestMethod.POST)
@ResponseBody
public User getUser(@RequestBody User userParam) {
    System.out.println("userParam = " + userParam);
    User user = new User();
    user.setAge(18);
    user.setName("John");
    //返回的对象,会使用jackson的序列化工具,转成json返回给前端!
    return user;
}

如果类中每个方法上都标记了 @ResponseBody 注解,那么这些注解就可以提取到

类上的 @ResponseBody 注解可以和 @Controller 注解合并为 @RestController 注解,效果一样

3、返回静态资源处理

对 SpringMVC 来说,必须有对应的 @RequestMapping 才能找到处理请求的方法,静态资源请求没有对应的 @RequestMapping 会返回 404

解决方式是在配置文件中开启静态资源处理

@EnableWebMvc  //json数据处理,必须使用此注解,因为他会加入json处理器
@Configuration
@ComponentScan(basePackages = "com.atguigu.controller") //TODO: 进行controller扫描
//WebMvcConfigurer springMvc进行组件配置的规范,配置组件,提供各种方法! 前期可以实现
public class SpringMvcConfig implements WebMvcConfigurer {

    //开启静态资源处理 <mvc:default-servlet-handler/>
    @Override
    public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
        configurer.enable();
    }
}

4、SSM整合问题

SSM整合需要几个容器

两个容器:WEB容器ROOT容器,并且root容器是web容器的父容器

容器名盛放组件
web容器web相关组件(controller,springmvc核心组件)
root容器业务和持久层相关组件(service,aop,tx,dataSource,mybatis,mapper等)

子IOC容器可以注入父IOC容器组件:子容器可以依赖注入来自父容器中的Bean,例如,子容器中的组件如果需要一个在父容器中定义的服务或配置,它可以通过依赖注入的方式获取。

父容器:

@Configuration
public class ParentConfig {
    @Bean
    public DataSource dataSource() {
        return new DataSource();  // 通用的数据源配置
    }
}

子容器:

@Configuration
public class ChildConfig {
    @Autowired
    private DataSource dataSource;  // 注入父容器中的DataSource

    @Bean
    public UserService userService() {
        return new UserService(dataSource);  // 使用父容器中的DataSource
    }
}

配置类与容器关系(Config and Ioc)

配置名对应内容对应容器
WebJavaConfigcontroller,springmvc相关web容器
ServiceJavaConfigservice,aop,tx相关root容器
MapperJavaConfigmapper,datasource,mybatis相关root容器

在这里插入图片描述

IoC初始化方式和配置位置

使用配置类形式:

public class MyWebAppInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {

  //指定root容器对应的配置类
  //root容器的配置类
  @Override
  protected Class<?>[] getRootConfigClasses() {
    return new Class<?>[] { ServiceJavaConfig.class,MapperJavaConfig.class };
  }
  
  //指定web容器对应的配置类 webioc容器的配置类
  @Override
  protected Class<?>[] getServletConfigClasses() {
    return new Class<?>[] { WebJavaConfig.class };
  }
  
  //指定dispatcherServlet处理路径,通常为 / 
  @Override
  protected String[] getServletMappings() {
    return new String[] { "/" };
  }
}

在这里插入图片描述

5、Springboot快速入门

Springboot简化了配置,采用约定优于配置的理念,允许开发者通过默认设置快速启动项目。其次,Spring Boot 集成了自动配置,能够根据项目的依赖自动配置所需的组件,减少了手动配置的麻烦。此外,Spring Boot 提供了内嵌的服务器支持,简化了部署过程,使应用更易于打包和发布。

  1. 添加父工程坐标
    在Spring Boot提供了一个名为spring-boot-starter-parent的工程,里面已经对各种常用依赖的版本进行了管理,我们的项目需要以这个项目为父工程,这样我们就不用操心依赖的版本问题了。
<!--所有springboot项目都必须继承自 spring-boot-starter-parent-->
<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>3.0.5</version>
</parent>
  1. 添加web启动器
    为了让Spring Boot帮我们完成各种自动配置,我们必须引入Spring Boot提供的自动配置依赖,我们称为启动器。因为我们是web项目,这里我们引入web启动器,在 pom.xml 文件中加入如下依赖:
<dependencies>
<!--web开发的场景启动器-->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
</dependencies>
  1. 创建启动类

@SpringBootApplication是一个特殊的注解,用于标识一个Spring Boot应用程序的入口类。它的主要作用是将三个常用注解组合在一起,简化了配置的过程。

具体而言,@SpringBootApplication注解包含以下三个注解的功能:

  • @Configuration:将该类标识为应用程序的配置类。它允许使用Java代码定义和配置Bean。
    
  • @EnableAutoConfiguration:启用Spring Boot的自动配置机制。它根据项目的依赖项自动配置Spring应用程序的行为。自动配置根据类路径、注解和配置属性等条件来决定要使用的功能和配置。
    
  • @ComponentScan:自动扫描并加载应用程序中的组件,如控制器、服务、存储库等。它默认扫描@SpringBootApplication注解所在类的包及其子包中的组件。
    

使用@SpringBootApplication注解,可以将上述三个注解的功能集中在一个注解上,简化了配置文件的编写和组件的加载和扫描过程。它是Spring Boot应用程序的入口点,标识了应用程序的主类,并告诉Spring Boot在启动时应如何配置和加载应用程序。

package com.atguigu;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class MainApplication {

    //SpringApplication.run() 方法是启动 Spring Boot 应用程序的关键步骤。它创建应用程序上下文、
    // 自动配置应用程序、启动应用程序,并处理命令行参数,使应用程序能够运行和提供所需的功能
    public static void main(String[] args) {
        SpringApplication.run(MainApplication.class,args);
    }
}
  1. 编写处理器Controller
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值