spring boot web 开发示例

一、创建Maven工程

创建maven工程,packaging 类型选择jar。

二、配置相关maven依赖。

1,首先你需要在pom中最上方添加spring boot的父级依赖,这样当前的项目就是Spring Boot项目了。

<parent>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-parent</artifactId>
	<version>1.5.13.RELEASE</version>
	<relativePath />
</parent>

2,你要创建Spring Boot web工程则需要添加springboot web 的starter(jar)依赖。该依赖会将spring web mvc 开发所需要的依赖全部都引入进来。

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
	</dependency>
</dependencies>

3,完整的pom如下;

<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.xiaohui.demo</groupId>
  <artifactId>bootdemo</artifactId>
  <version>0.0.1-SNAPSHOT</version>
	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>1.5.13.RELEASE</version>
		<relativePath />
	</parent>
	<dependencies>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>
	</dependencies>
</project>

三、application.properties配置

在web开发中配置文件中server配置项比较多,需要在网上进行查阅,实例仅做常用简单的配置指定应用名称以及端口号:


#servlet容器配置
server.port=8080
server.context-path=/WebDemo

四、创建package 编写启动类 、Controller 以及拦截器实例

Spring Boot默认会扫描启动类同包以及子包下的注解,实现的途径就是必须在启动类引入注解@ComponetScan。项目中引入了注解@SpringBootApplication 这就意味(本质上)引入注解@ComponetScan,所以就会扫描Application.Class所在包以及子包的注解。所以在本示例中可以省略@ComponetScan注解

1,Application.java启动类代码如下:

package com.demo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
//import org.springframework.context.annotation.ComponentScan;

//@ComponentScan("com.demo") 
@SpringBootApplication
public class Application {
		
	public static void main(String[] args){
		
		SpringApplication.run(Application.class, args);
	} 
}

2,Controller 代码如下:

package com.demo.controller;

import java.util.ArrayList;
import java.util.List;

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 com.demo.bean.User;

@Controller
@RequestMapping(value="/user")
public class UserController {
	
	@ResponseBody
	@RequestMapping(value="/userList",method=RequestMethod.GET)
	public List<User> getUserList(){
		User user = new User();
		user.setId("11111");
		user.setName("zhangsan");
		User user2 = new User();
		user2.setId("22222");
		user2.setName("lisi");
		List<User> list = new ArrayList<User>();
		list.add(user);
		list.add(user2);
		return list;
	}

}
package com.demo.controller;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping(value="/cour")
public class CourController {

	@RequestMapping(value="/courList",method=RequestMethod.GET)
	public List<Map<String,String>> getCourList(){
		List<Map<String, String>> list = new ArrayList<Map<String, String>>();
		Map<String, String> cour = new HashMap<String, String>();
		cour.put("name", "数学");
		Map<String, String> cour2 = new HashMap<String, String>();
		cour2.put("name", "计算机");
		list.add(cour);
		list.add(cour2);
		return list;
	}
}

在编写Controller中使用到的注解:

@Controller:Spring Mvc中所使用的注解,表示该类为Controller(处理器),在spring 项目中由控制器负责将用户发来的URL请求转发到对应的服务接口(service层),一般这个注解在类中,通常方法需要配合注解@RequestMapping。

@RequestMapping:Spring Mvc中所使用的注解,定义请求url到处理器功能方法的映射。使用方法上面以及在类上面。

@ResponseBody:Spring Mvc中所使用的注解,该注解用于将Controller的方法返回的对象,通过HttpMessageConverter接口转换为指定格式的数据如:json,xml等,通过Response响应给客户端,本示例中则是将返回结果以JSON形式进行返回到前端浏览器。

@RestController:是@Controller和@ResponseBody的合并作用。使用在类上面。使用该注解后,所有方法都可以省略@ResponseBody注解。并且所有方法上的请求都将以JSON形式返回到浏览器上。

3,LoginFilter拦截器类代码如下:

编写拦截器需要创建类实现javax.servlet.Filter接口,在doFilter方法中可以进行拦截判断处理。在类上需要加上拦截器注解,指明拦截的路径@WebFilter(urlPatterns = "/*", filterName = "loginFilter")。拦截器其他属性可以自行查询

package com.demo.filter;

import java.io.IOException;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebFilter;
import javax.servlet.http.HttpServletRequest;

import org.springframework.stereotype.Component;

@Component
@WebFilter(urlPatterns = "/*", filterName = "loginFilter")
public class LoginFilter implements Filter {

	@Override
	public void init(FilterConfig filterConfig) throws ServletException {	
	}

	@Override
	public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
			throws IOException, ServletException {
		HttpServletRequest hrequest = (HttpServletRequest)request;
		 System.out.println("LocalAddr:"+hrequest.getRequestURI());
		 chain.doFilter(request, response);
	}

	@Override
	public void destroy() {
	}

}

四、测试验证:

启动项目后我们访问路径;

代码参考:https://github.com/liuhenghui/SpringBootDemo/commit/33c51d7fca85de309845549019ade0b8312cc067

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值