使用 IDEA 创建 MAVEN 项目 使用纯JAVA配置搭建 Spring MVC 文件上传案例

 本篇文章记录如何使用IDEA 搭建 MAVEN 项目, 使用纯JAVA配置搭建 Spring MVC ,实现文件上传的功能。

第一步: file -> new -> project

左侧选择Maven, 右侧选择jdk 版本,如果下拉选项中无,则需要下载安装JDK,然后点击New选择到JDK安装的目录。然后NEXT 

使用 IDEA 创建 MAVEN 项目 使用纯JAVA配置搭建 Spring MVC 文件上传案例_第1张图片

第二步: 填写 Groupid 和 ArtifactId ,然后Next

使用 IDEA 创建 MAVEN 项目 使用纯JAVA配置搭建 Spring MVC 文件上传案例_第2张图片 

第三步:填写项目名称以及项目保存的路径,然后Finish 

使用 IDEA 创建 MAVEN 项目 使用纯JAVA配置搭建 Spring MVC 文件上传案例_第3张图片 

至此一个简单的Maven项目创建完毕,项目的结构如下截图所示。 

使用 IDEA 创建 MAVEN 项目 使用纯JAVA配置搭建 Spring MVC 文件上传案例_第4张图片 

第四步:在pom.xml文件中 添加相关依赖 ,保存,初次下载会比较慢。耐心等待就好了,哈哈~。



    4.0.0

    pers.sjh
    spring_test15
    1.0-SNAPSHOT
    war
    
        4.3.4.RELEASE
    
    
        
            javax
            javaee-api
            7.0
            
            provided
        
        
            org.springframework
            spring-webmvc
            ${spring-framework.version}
        
        
            javax.servlet
            javax.servlet-api
            3.1.0
            provided
        
        
            javax.servlet
            jstl
            1.2
        

        
            javax.servlet.jsp
            jsp-api
            2.2
            provided
        
        
            org.springframework
            spring-tx
            ${spring-framework.version}
        
        
            org.slf4j
            slf4j-api
            1.7.21
        
        
            log4j
            log4j
            1.2.17
        
        
            org.slf4j
            jcl-over-slf4j
            1.7.21
        
        
            ch.qos.logback
            logback-classic
            1.1.8
        
        
            ch.qos.logback
            logback-core
            1.1.8
        
        
            ch.qos.logback
            logback-access
            1.1.8
        
        
            com.google.code.gson
            gson
            2.8.0
        
        
            com.fasterxml.jackson.dataformat
            jackson-dataformat-xml
            2.8.5
        
        
            commons-fileupload
            commons-fileupload
            1.3.2
        
        
            commons-io
            commons-io
            2.5
        
    
    
        
            
                org.apache.maven.plugins
                maven-compiler-plugin
                3.6.0
            
            
                org.apache.maven.plugins
                maven-war-plugin
                3.0.0
                
                    false
                
            
        
    


第五步:添加jsp 文件,在Resource文件夹下创建views 文件夹,将新创建的jsp文件放在此目录下面

使用 IDEA 创建 MAVEN 项目 使用纯JAVA配置搭建 Spring MVC 文件上传案例_第5张图片

 代码:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>


    文件上传


第六步:在java 文件夹下创建创建相关package,将相关java文件放在package下面

使用 IDEA 创建 MAVEN 项目 使用纯JAVA配置搭建 Spring MVC 文件上传案例_第6张图片

下面我将注意介绍三个文件的作用

1、MVCConfig.java 

package pers.sjh;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.multipart.MultipartResolver;
import org.springframework.web.multipart.commons.CommonsMultipartResolver;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.ViewControllerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
import org.springframework.web.servlet.view.InternalResourceViewResolver;
import org.springframework.web.servlet.view.JstlView;

@Configuration
@EnableWebMvc
@ComponentScan("pers.sjh")
public class MVCConfig extends WebMvcConfigurerAdapter{
    @Bean
    public InternalResourceViewResolver viewResolver() {
        InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();
        viewResolver.setPrefix("/WEB-INF/classes/views/");
        viewResolver.setSuffix(".jsp");
        viewResolver.setViewClass(JstlView.class);
        return viewResolver;
    }

    @Override
    public void addViewControllers(ViewControllerRegistry registry) {
        registry.addViewController("/index").setViewName("/index");
    }
    @Bean
    public MultipartResolver multipartResolver() {
        CommonsMultipartResolver resolver = new CommonsMultipartResolver();
        resolver.setMaxUploadSize(1000000);
        return resolver;
    }
}

这个文件是spring mvc 的配置文件,@Configuration 注解标志着该类是一个配置类,@EnableWebMvc表示开启SpringMVC中一些默认配置,ViewResolver是SpringMVC视图渲染的核心机制,SpringMVC框架中有一个ViewResolver接口,该接口有一个方法叫做resolveViewName,该方法返回一个View对象,这个View的职责就是结合request、response对象,将渲染的视图返回给浏览器,渲染后的视图可以是HTML,也可以是json、xml、PDF等。另外,由于项目编译之后运行的时候,index.jsp 文件是处于/WEB-INF/classes/views/目录下的,所以前缀为/WEB-INF/classes/views/。

项目编译后jsp文件的路径如下图所示

使用 IDEA 创建 MAVEN 项目 使用纯JAVA配置搭建 Spring MVC 文件上传案例_第7张图片

另外两个方法则对路由和文件上传的大小做了配置。

2、UploadController.java

package pers.sjh;

import org.apache.commons.io.FileUtils;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;

import java.io.File;
import java.io.IOException;


@Controller
public class UploadController {
    @ResponseBody
    @RequestMapping(value = "/upload",method = RequestMethod.POST,produces = "text/plain;charset=UTF-8")
    public String upload(MultipartFile file) {
        try {
            FileUtils.writeByteArrayToFile(new File("C:/"+file.getOriginalFilename()),file.getBytes());
            return "上传成功";
        } catch (IOException e) {
            e.printStackTrace();
            return "上传失败";
        }
    }
}

 该文件用来响应前台jsp 发送文件上传的请求。@Controller 标志着该类是一个Controller, @ReposeBody 返回一个JSON数据,显示在前台界面上用来提示文件上传是否成功。另外 @Controller 和@Response注解合一合并起来用 @RestController来替代。效果是一样的,@RequestMapping 可以用在类上和方法上 注解如果用在类上则表示一级路由,方法上的注解会继承该路由。

3、WebInit.java

package pers.sjh;

import org.springframework.web.WebApplicationInitializer;
import org.springframework.web.context.support.AnnotationConfigWebApplicationContext;
import org.springframework.web.servlet.DispatcherServlet;

import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletRegistration;


public class WebInit implements WebApplicationInitializer {
    public void onStartup(ServletContext servletContext) throws ServletException {
        AnnotationConfigWebApplicationContext context = new AnnotationConfigWebApplicationContext();
        context.register(MVCConfig.class);
        context.setServletContext(servletContext);
        ServletRegistration.Dynamic servlet = servletContext.addServlet("dispatcher", new DispatcherServlet(context));
        servlet.addMapping("/");
        servlet.setLoadOnStartup(1);
    }
}

这里的代码对照xml配置也都很好理解,首先我们自定义类实现WebApplicationInitializer接口,并实现该接口中的onStartup方法,该方法在Spring容器启动之后就会被自动调用,然后创建AnnotationConfigWebApplicationContext的实例并加载我们的SpringMVC的配置文件,这一步其实也可以通过加载xml文件来完成,当然,这是另外一个话题了。最后创建DispatcherServlet,并设置映射方式以及启动时机等。

到这里整个项目就已经完毕了,但是如何进行启动项目呢,则还需要如下的步骤

点击 run ->  edit configurations

使用 IDEA 创建 MAVEN 项目 使用纯JAVA配置搭建 Spring MVC 文件上传案例_第8张图片

点击 + 号 选择 tomcat server

使用 IDEA 创建 MAVEN 项目 使用纯JAVA配置搭建 Spring MVC 文件上传案例_第9张图片 

 如果列表中没有tomcat server 则 点击 file -> setting - plugins ,将红色箭头所指的地方打上勾,重启IDEA,就行了。

使用 IDEA 创建 MAVEN 项目 使用纯JAVA配置搭建 Spring MVC 文件上传案例_第10张图片

回到配置Tomcat Server的界面,

使用 IDEA 创建 MAVEN 项目 使用纯JAVA配置搭建 Spring MVC 文件上传案例_第11张图片

Server Tab页

箭头 1 : Server 的名称,这个可以自行填写

箭头2 :选择 本机上的Tomcat ,如果下拉选项中没有,则点击右侧Configure手动选择到本机Tomcat的解压目录,如果没有则自行百度下载。

箭头3:选择调试的浏览器,一般选择 Chrome

箭头4:这个地方需要切换到Deployment  Tab页,如下截图所示,点解 + 号 选择你自己的项目 ,箭头2处填写你自己项目名称即可,该出完成以后箭头4处就会有内容了,此时我们在手动修改添加“index”,让项目启动的时候就跳转到相关页面。

使用 IDEA 创建 MAVEN 项目 使用纯JAVA配置搭建 Spring MVC 文件上传案例_第12张图片

 箭头5:SDK版本,一般选择默认的即可

箭头6:选择端口,一般填写8080。

到这个地方项目就配置就配置完毕了,这个时候我们启动项目试试看,

使用 IDEA 创建 MAVEN 项目 使用纯JAVA配置搭建 Spring MVC 文件上传案例_第13张图片

 选择我们刚刚配置好的信息

使用 IDEA 创建 MAVEN 项目 使用纯JAVA配置搭建 Spring MVC 文件上传案例_第14张图片

如下图所示项目已经成功启动起来了,

使用 IDEA 创建 MAVEN 项目 使用纯JAVA配置搭建 Spring MVC 文件上传案例_第15张图片 

选择文件上传

使用 IDEA 创建 MAVEN 项目 使用纯JAVA配置搭建 Spring MVC 文件上传案例_第16张图片

以上就是使用IDEA 创建maven 项目,使用纯java 配置 spring mvc 实现文件上传的过程,如有什么不对的地方欢迎提出~ 

ps:文件源码地址:点击这里

你可能感兴趣的:(Spring,Java,Spring,MVC,idea,java,maven,spring,mvc)