springmvc建立第一个项目

首页 / 🍁编程类 / 正文

springmvc第一次建立项目

springmvc需要配置的东西比较多,不过也仅仅需要配置一次,因为都是固定的,在这个案例完之后,我还使用了下spring中的通知,现在感觉通知超级简单,很方便使用

教程开始

srpingmvc.xml

<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:aop="http://www.springframework.org/schema/aop"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context
        https://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop.xsd">


    <!--  自动扫描包  -->
    <context:component-scan base-package="com.xiaonan.springmvc"/>
    <!--  配置Thymeleaf视图解析器  -->
    <bean id="viewResolver" class="org.thymeleaf.spring5.view.ThymeleafViewResolver">
        <property name="order" value="1"/>
        <property name="characterEncoding" value="UTF-8"/>
        <property name="templateEngine">
            <bean class="org.thymeleaf.spring5.SpringTemplateEngine">
                <property name="templateResolver">
                    <bean class="org.thymeleaf.spring5.templateresolver.SpringResourceTemplateResolver">
                        <!--  视图前缀  -->
                        <property name="prefix" value="/WEB-INF/template/"/>
                        <!--  视图后缀  -->
                        <property name="suffix" value=".html"/>
                        <property name="templateMode" value="HTML5"/>
                        <property name="characterEncoding" value="UTF-8"/>
                    </bean>
                </property>
            </bean>
        </property>
    </bean>


    <!--开启基于注解的aop -->
    <aop:aspectj-autoproxy/>
</beans>

web.xml这个文件也就是你建立项目附带的那个配置文件,位置在webapp/WEB-INF

<!DOCTYPE web-app PUBLIC
 "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
 "http://java.sun.com/dtd/web-app_2_3.dtd" >

<web-app>
  <display-name>Archetype Created Web Application</display-name>

  <servlet>
    <servlet-name>springMVC</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <!--  通过初始化参数指定SpringMVC配置文件的位置和名称  -->
    <init-param>
      <!--  contextConfigLocation为固定值  -->
      <param-name>contextConfigLocation</param-name>
      <!--  使用classpath:表示从类路径查找配置文件,例如maven工程中的
                  src/main/resources  -->
      <param-value>classpath:springmvc.xml</param-value>
    </init-param>
    <!--
            作为框架的核心组件,在启动过程中有大量的初始化操作要做
            而这些操作放在第一次请求时才执行会严重影响访问速度
            因此需要通过此标签将启动控制DispatcherServlet的初始化时间提前到服务器启动时
             -->
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>springMVC</servlet-name>
    <!--
            设置springMVC的核心控制器所能处理的请求的请求路径
            /所匹配的请求可以是/login或.html或.js或.css方式的请求路径
            但是/不能匹配.jsp请求路径的请求
             -->
    <url-pattern>/</url-pattern>
  </servlet-mapping>

</web-app>

pom.xml这里面是需要用到的mavenjar包

  <dependencies>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-aspects</artifactId>
      <version>5.3.2</version>
    </dependency>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-webmvc</artifactId>
      <version>5.3.1</version>
    </dependency>
    <!--  日志  -->
    <dependency>
      <groupId>ch.qos.logback</groupId>
      <artifactId>logback-classic</artifactId>
      <version>1.2.3</version>
    </dependency>
    <!--  ServletAPI  -->
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>javax.servlet-api</artifactId>
      <version>3.1.0</version>
      <scope>provided</scope>
    </dependency>
    <!--  Spring5和Thymeleaf整合包  -->
    <dependency>
      <groupId>org.thymeleaf</groupId>
      <artifactId>thymeleaf-spring5</artifactId>
      <version>3.0.12.RELEASE</version>
    </dependency>
  </dependencies>

controller文件

@org.springframework.stereotype.Controller
public class Controller {

    // @RequestMapping注解:处理请求和控制器方法之间的映射关系
    // @RequestMapping注解的value属性可以通过请求地址匹配请求,/表示的当前工程的上下文路径
    // localhost:8080/springMVC/
    @RequestMapping("/")
    public String index() {
        //设置视图名称
        return "index";
    }
    @RequestMapping("/hello")
    public String hello(){
        return "hello";
    }

}

总结

初次学习,需要注意这些点

  1. springmvc中的试图解析器,也就是这里面标记着访问文件的路径
  2. 需要注意web.xml文件中的servlet标签,servlet-name里面内容必须一样,servlet-class必须用本文里面的东西,url-pattern这里面才是最终的路径但我建议直接使用"/"来表示,对应的在controller里面的方法

彩蛋

在搭建springmvc第一个案例之后,我简单的使用了下spring中的通知,真的超级简单

使用方法

  1. 在springmvcwen文件中直接添加"<aop:aspectj-autoproxy/>"直接复制进去,这就开启了,如果没有报红,去百度找下aop标签的约束即可
  2. 建立一个通知类

    @Component
    @Aspect
    public class Ceshi {
    
     @Before("execution(* com.xiaonan.springmvc.Controller.index())")
     public void beforeMethod(JoinPoint joinPoint){
         System.out.println("测试访问主页");
     }
    }
    //上面的注解必须写
    //在一个就是你的目标方法即可


简单的俩步,就配置好了spring通知

评论区
头像