Spring学习笔记1 Spring MVC 环境搭建(intellij idea)

本文介绍了如何在Ubuntu 16.04上使用IntelliJ IDEA Ultimate搭建Spring MVC环境。首先确保JDK配置正确,然后创建项目,配置Spring MVC的基本结构,包括DemoWebAppInitializer、RootConfig、WebConfig以及控制器。接着创建视图文件夹和jsp页面,处理web.xml,解决缺少的javax.servlet包问题。最后通过Tomcat部署运行。搭建过程虽然复杂,但完成后的环境将便于后续的Spring开发。

终于有时间来学习一下spring了。
当然了,spring包含很多模块,为此我们需要一本参考书。
spring 实战
这里写图片描述

不过,首先我想先写一篇搭环境的。
因为环境确实很难搭!!!
这也是我觉得spring学习曲线高的一个原因。

OS: ubuntu 16.04
IDE: IntelliJ IDEA Ultimate
(学生可以免费使用 Ultimate )
首先新建一个springmvc项目
这里写图片描述
当然了,JDK 预先要配置好了。JDK 9 刚出没多久,JDK 10就出了,也是醉。

在src里 新建一个 demo.config的 package
并在demo.config里新建3个类
DemoWebAppInitializer.java

package demo.config;
​
import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;
​
public class DemoWebAppInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {
    @Override
    protected String[] getServletMappings() {
        return new String[] {"/"};
    }
​
    @Override
    protected Class<?>[] getRootConfigClasses() {
        return new Class<?>[] {RootConfig.class};
    }
​
    @Override
    protected Class<?>[] getServletConfigClasses() {
        return new Class<?>[] {WebConfig.class};
    }
}

RootConfig.java

package demo.config;


import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.FilterType;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
​
@Configuration
@ComponentScan(basePackages = {"demo"}, excludeFilters = {
        @ComponentScan.Filter(type = FilterType.ANNOTATION, value = EnableWebMvc.class)
})
public class RootConfig {
}

WebConfig.java

package demo.config;
​
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.ViewResolver;
import org.springframework.web.servlet.config.annotation.DefaultServletHandlerConfigurer;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
import org.springframework.web.servlet.view.InternalResourceViewResolver;
@Configuration
@EnableWebMvc
@ComponentScan("demo.web")
public class WebConfig extends WebMvcConfigurerAdapter {
    @Bean
    public ViewResolver viewResolver() {
        InternalResourceViewResolver resolver = new InternalResourceViewResolver();
        resolver.setPrefix("/WEB-INF/views/");
        resolver.setSuffix(".jsp");
        resolver.setExposeContextBeansAsAttributes(true);
        return resolver;
    }
​
    @Override
    public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
        super.configureDefaultServletHandling(configurer);
        configurer.enable();
    }
}


这样就做了一个最小但可用的Spring MVC 配置

接下来写控制器
新建一个demo.web的package
在demo.web里新建一个HomeController.java

package demo.web;
​
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
​
@Controller
public class HomeController {
    @RequestMapping(value = "/", method = RequestMethod.GET)
    public String home() {
        return "home";
    }
}
​

由WebConfig.java resolver.setPrefix("/WEB-INF/views/"); 可知
views肯定是这里的
所以在WEB-INF里新建一个 views 文件夹
然后再新建一个home.jsp
比如可以是这样

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
    Hello Spring MVC
</body>
</html>
​

代码编写部分已经全部完毕,接下来动动鼠标。
删除web文件夹下的
index.jsp
因为已经通过了 DemoWebAppInitializer.java 处理 /
将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">
</web-app>

因为已经自动配置了,但是web.xml还得呆在那里。
然后系统自动生成的 applicationContext.xml 和 dispatcher-servlet.xml 删了就好。
参考文件结构
这里写图片描述

File -> Project Structure -> Problems
点fix修复错误

Run -> Tomcat Server ->
Server
这里写图片描述
Tomcat 要提前下载好
Deployment
这里写图片描述

然后,还是不能run,因为还缺少javax.servlet 包
这里写图片描述

这样来一手

然后就可以run了
这里写图片描述

万事开头难。
把环境配好,后面的就简单了。

下面简单的捋一捋逻辑。
DemoWebAppInitializer
这个类继承了 AbstractAnnotationConfigDispatcherServletInitializer
然后,只要这个类存在,那就统统给你配置好了。
这个类注入了
RootConfig和WebConfig
RootConfig指定了要扫描的package
WebConfig规定了视图的路径

demo.web里面可以放控制器
通过注解来处理路由和请求,然后返回一个String,这个String,也就指定了将由视图来进行呈现。

    @RequestMapping(value = "/", method = RequestMethod.GET)
    public String home() {
        return "home";
    }

这样这个基本的demo就完成了。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值