当前位置:首页 > 网络技术 > springmvc依赖注入(springmvc常用5种注解)(spring基于注解形式依赖注入)

springmvc依赖注入(springmvc常用5种注解)(spring基于注解形式依赖注入)

longge2022-03-24 01:47:40网络技术76

初识SpringMVC

实现步骤:

  1. 新建一个web项目
  2. 导入相关jar包
  3. 编写web.xml,注册DispatcherServlet
  4. 编写springmvc配置文件
  5. 接下来就是去创建对应的控制类 , controller
  6. 最后完善前端视图和controller之间的对应
  7. 测试运行调试

使用springMVC必须配置的三大件:

处理器映射器、处理器适配器、视图解析器

通常,我们只需要手动配置视图解析器,而处理器映射器处理器适配器只需要开启注解驱动即可,而省去了大段的xml配置

注解实现SpringMVC

常见注解

@Component	组件
@Service	服务
@Controller	控制
@Respository	dao层

控制器

package com.kuang.controller;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
//@Controller注解的类会自动添加到Spring上下文中
@Controller
@RequestMapping("/test2")
public class ControllerTest2{
	//映射访问路径
	@RequestMapping("/t2")
	public String index(Model model){
		//Spring MVC会自动实例化一个Model对象用于向视图中传值
		model.addAttribute("msg", "ControllerTest2");
		//返回视图位置
		return "test";
	}
}
  • @Controller是为了让Spring IOC容器初始化时自动扫描到;
  • @RequestMapping是为了映射请求路径,这里因为类与方法上都有映射所以访问时应该是/test2/t2;

标准maven依赖

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.reliable</groupId>
    <artifactId>SpringMVC2</artifactId>
    <packaging>pom</packaging>
    <version>1.0-SNAPSHOT</version>
    <modules>
        <module>springmvc-04-controller</module>
    </modules>
    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>5.1.9.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>servlet-api</artifactId>
            <version>2.5</version>
        </dependency>
        <dependency>
            <groupId>javax.servlet.jsp</groupId>
            <artifactId>jsp-api</artifactId>
            <version>2.2</version>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jstl</artifactId>
            <version>1.2</version>
        </dependency>
    </dependencies>
    <build>
        <resources>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.properties</include>
                    <include>**/*.xml</include>
                </includes>
                <filtering>false</filtering>
            </resource>
            <resource>
                <directory>src/main/resources</directory>
                <includes>
                    <include>**/*.properties</include>
                    <include>**/*.xml</include>
                </includes>
                <filtering>false</filtering>
            </resource>
        </resources>
    </build>
</project>

一、配置pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <parent>
        <artifactId>SpringMVC2</artifactId>
        <groupId>com.reliable</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>springmvc-04-controller</artifactId>
    <dependencies>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>servlet-api</artifactId>
            <version>2.5</version>
        </dependency>
        <dependency>
            <groupId>javax.servlet.jsp</groupId>
            <artifactId>jsp-api</artifactId>
            <version>2.2</version>
        </dependency>
    </dependencies>
    <build>
        <resources>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.properties</include>
                    <include>**/*.xml</include>
                </includes>
                <filtering>false</filtering>
            </resource>
            <resource>
                <directory>src/main/resources</directory>
                <includes>
                    <include>**/*.properties</include>
                    <include>**/*.xml</include>
                </includes>
                <filtering>false</filtering>
            </resource>
        </resources>
    </build>
</project>

二、配置web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">
    <!--1.注册servlet-->
    <servlet>
        <servlet-name>SpringMVC</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <!--通过初始化参数指定SpringMVC配置文件的位置,进行关联-->
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:springmvc-servlet.xml</param-value>
        </init-param>
        <!-- 启动顺序,数字越小,启动越早 -->
        <load-on-startup>1</load-on-startup>
    </servlet>
    <!--所有请求都会被springmvc拦截 -->
    <servlet-mapping>
        <servlet-name>SpringMVC</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>
</web-app>

三、配置springmvc-servlet.xml

<?xml version="1.0" encoding="UTF-8"?>
<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:mvc="http://www.springframework.org/schema/mvc"
       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/mvc
        https://www.springframework.org/schema/mvc/spring-mvc.xsd">
    <!-- 自动扫描包,让指定包下的注解生效,由IOC容器统一管理 -->
    <context:component-scan base-package="com.kuang.controller"/>
    <!-- 让Spring MVC不处理静态资源html 等-->
    <mvc:default-servlet-handler/>
    <!--
    支持mvc注解驱动
        在spring中一般采用@RequestMapping注解来完成映射关系
        要想使@RequestMapping注解生效
        必须向上下文中注册DefaultAnnotationHandlerMapping
        和一个AnnotationMethodHandlerAdapter实例
        这两个实例分别在类级别和方法级别处理。
        而annotation-driven配置帮助我们自动完成上述两个实例的注入。
		<mvc:annotation-driven /> 完成了映射和适配(支持用注解完成)
     -->
    <mvc:annotation-driven />
    <!-- 视图解析器 -->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"
          id="internalResourceViewResolver">
        <!-- 前缀 -->
        <property name="prefix" value="/WEB-INF/jsp/" />
        <!-- 后缀 -->
        <property name="suffix" value=".jsp" />
    </bean>
</beans>

RestFul 风格

概念
Restful就是一个资源定位及资源操作的风格。不是标准也不是协议,只是一种风格。基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制。

功能
资源:互联网所有的事物都可以被抽象为资源
资源操作:使用POST、DELETE、PUT、GET,使用不同方法对资源进行操作。
分别对应 添加、 删除、修改、查询。

RestFulController(@PathVariable)

package com.kuang.controller;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

@Controller
public class RestFulController {
	//映射访问路径
	@RequestMapping("/commit/{p1}/{p2}")
	public String index(@PathVariable int p1, @PathVariable int p2, Model model){
		int result = p1+p2;
		//Spring MVC会自动实例化一个Model对象用于向视图中传值
		model.addAttribute("msg", "结果:"+result);
		//返回视图位置
		return "test";
	}

	//映射访问路径,必须是Get请求
	@RequestMapping(value = "/hello",method = {RequestMethod.GET})
	public String index2(Model model){
		model.addAttribute("msg", "hello!");
		return "test";
	}
}

使用method属性指定请求类型

用于约束请求的类型,可以收窄请求范围。指定请求谓词的类型如GET, POST, HEAD, OPTIONS, PUT, PATCH, DELETE, TRACE等。

	//映射访问路径,必须是Get请求
	@RequestMapping(value = "/hello",method = {RequestMethod.GET})
	public String index2(Model model){
		model.addAttribute("msg", "hello!");
		return "test";
	}

除了添加method,还可以使用注解

@GetMapping
@PostMapping
@PutMapping
@DeleteMapping
@PatchMapping

	//映射访问路径,必须是Get请求
	@GetMapping(value = "/hello")
	public String index2(Model model){
		model.addAttribute("msg", "hello!");
		return "test";
	}
免责声明
本站部分资源来源于互联网 如有侵权 请联系站长删除
龙哥网是优质的互联网科技创业资源_行业项目分享_网络知识引流变现方法的平台为广大网友提供学习互联网相关知识_内容变现的方法。#转载请注明出处!
  • 随机文章
  • 热门文章
  • 热评文章

“springmvc依赖注入(springmvc常用5种注解)(spring基于注解形式依赖注入)” 的相关文章

js鼠标滑轮滚动监听触发事件(jquery鼠标滚动监听事件)

js鼠标滑轮滚动监听触发事件(jquery鼠标滚动监听事件)

判断鼠标滚动方向执行不同的事件代码,兼容IE、Firefox、chrome浏览器。javascript代码如下: <script> var scrollFunc = func...

古风角色设计班(古风人物设计)

古风角色设计班(古风人物设计)

课程介绍 该课程为古风角色设计班,内容涵盖头像绘制、头饰设计、角色设计入门、服装与配饰、素材应用、完整主题角色设计等内容!古风向原创角色设计,各种类型的配饰创意,老师独家私藏自制素材分享,挑...

基于Jpa中ManyToMany和OneToMany的双向控制_java(jpa onetomany)

基于Jpa中ManyToMany和OneToMany的双向控制_java(jpa onetomany)

目录 Jpa ManyToMany和OneToMany的双向控制 1、ManyToMany    2、OneToMany以及ManyToOne JPA中Man...

关于Process的waitFor死锁问题及解决方案_java(process.waitfor)

关于Process的waitFor死锁问题及解决方案_java(process.waitfor)

目录 Process的waitFor死锁问题 1、发现问题 2、原因查找 3、造成死锁原理图 问题代码 解决方案 Jav...

Java使用sleep方法暂停线程Thread_java(调用sleep方法可以使一个线程停止运行)

Java使用sleep方法暂停线程Thread_java(调用sleep方法可以使一个线程停止运行)

为什么要用sleep,主要是为了暂停当前线程,把cpu片段让出给其他线程,减缓当前线程的执行。 方法的定义: public static void sleep(long millis);...

关于BufferedReader的读取效率问题_java(bufferedreader read方法)

关于BufferedReader的读取效率问题_java(bufferedreader read方法)

目录 BufferedReader的读取效率 1. 一般情况 2. 采用read+CharBuffer OJ系统里用BufferedReader提高效率...