基于Spring注解搭建SpringMVC项目

在2018寒冬,我下岗了,因为我的左脚先迈进了公司的大门。这不是重点,重点是我扑到了老板小姨子的怀里。

网上好多教程都是基于XML的SpringMVC,想找一篇注解的,但是写的很模糊,我刚好学到这里,就做一篇SpringMVC注解的笔记吧。(如有错误,请见谅并指正,谢谢。)

1.首先我们应该创建项目(废话连篇)

image
image

2.完善目录结构(在Main下新建java文件夹,并改变属性)

image

3.在pom中添加SpringMVC依赖

image

4.在java目录下新建包以及AbstractAnnotationConfigDispatcherServletInitializer的实现类

image
解释一下为什么用实现AbstractAnnotationConfigDispatcherServletInitializer来初始化DispatcherServlet:

    在Servlet3.0环境中,容器会在类路径中查找实现javax.servlet.ServletContainerInitializer接口的类,如果找到的话就用它来配置Servlet容器。

    Spring提供了这个接口的实现,名为SpringServletContainerInitializer,这个类反过来又会查找实现WebApplicationInitializer的类并将配置的任务交给它们来完成。Spring3.2引入了一个便利的WebApplicationInitializer基础实现,名为AbstractAnnotationConfigDispatcherServletInitializer,当我们的类扩展了AbstractAnnotationConfigDispatcherServletInitializer并将其部署到Servlet3.0容器的时候,容器会自动发现它,并用它来配置Servlet上下文。(偷的,我能说出这话还敲TM的代码)

5.上面说到Servlet3.0环境,那就改呗,在pom中引入

image

Spring6修改为以下依赖

    <dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>6.0.10</version>
        </dependency>

        <dependency>
            <groupId>jakarta.servlet</groupId>
            <artifactId>jakarta.servlet-api</artifactId>
            <version>6.0.0</version>
        </dependency>

        <dependency>
            <groupId>jakarta.servlet.jsp</groupId>
            <artifactId>jakarta.servlet.jsp-api</artifactId>
            <version>3.1.1</version>
        </dependency>

        <dependency>
            <groupId>jakarta.servlet.jsp.jstl</groupId>
            <artifactId>jakarta.servlet.jsp.jstl-api</artifactId>
            <version>3.0.0</version>
        </dependency>
    </dependencies>

6.添加SpringMVC容器配置类

image
image

bug:请将WebConfig类中的包扫描限定到cn.coreqi。否则会出现一些容器扫描不到组件的问题,下面的代码已修正,上面的图片就没法修改了

Spring6修改为以下内容

package cn.coreqi.config;

import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.*;
import org.springframework.web.servlet.view.InternalResourceViewResolver;

@Configuration
@EnableWebMvc
@ComponentScan("cn.coreqi")
public class WebConfig implements WebMvcConfigurer {
    @Override
    public void configureViewResolvers(ViewResolverRegistry registry) {
        InternalResourceViewResolver resolver = new InternalResourceViewResolver();
        resolver.setPrefix("/WEB-INF/views/");
        resolver.setSuffix(".jsp");
        resolver.setExposeContextBeansAsAttributes(true);
        registry.viewResolver(resolver);
    }

    @Override
    public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
        configurer.enable();
    }
}

7.添加Spring容器配置类

image

8.添加控制器啥的。

image

9.创建views目录和home.jsp

image

10.添加Tomcat Server

image
image
image
image
image
image
image
image
image

11.运行测试

image

posted @ 2019-01-11 16:53  SpringCore  阅读(3569)  评论(0编辑  收藏  举报