spring boot 学习(一)

一、spring boot 特点

spring boot 是spring为简化spring程序开发,减少spring配置、开发、部署错误而开发spring开发框架,他提供了一系列的依赖打包,采用习惯替代依赖的方式解决依赖问题。对于web 开发,Spring Boot默认使用tomcat作为服务器,使用logback提供日志记录。

二、spring boot 编程初步

1、环境配置

spring默认采用maven或gradle作为构建工具,针对采用maven作为构建工具的环境,可自动根据spring-boot初始化包设置,下载相应依赖包。简单的web应用,pom.xml配置文件示例:

<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>cn.larry.spring</groupId>
    <artifactId>larry-spring-demo4</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.4.0.RELEASE</version>
    </parent>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>
</project>
在该pom.xml文件中,需设置spring-boot-starter-parent项作为依赖父项,添加spring-boot-starter-web作为依赖项,spring boot会自动下载spring 开发相关的springframework、spring web 以及spring web mvc的jar包

2、编程初步

@SpringBootApplication
public class DemoApplication {
	public static void main(String[] args) {
		Object[] objs=new Object[]{HelloController.class,TestController.class};
		SpringApplication.run(objs,args);
	}
}

spring boot 在main 函数中加载代码类,如:restfult 应用,在main函数中加载相应对的controller类;

当然还可以通过ComponentScan注释的方式加载Controller类,具体实现方式如下例子:

	
@SpringBootApplication
@ComponentScan(basePackages = {"com.example.controller"})
public class DemoApplication {public static void main(String[] args) {	  
 SpringApplication.run(DemoApplication.class,args);
}
}

三、实现json格式参数输入和返回

在实现restful形式的控制器时,接收客户端json格式的参数以及象客户端返回json格式的参数都非常简单,即为方法添加@Resonsebody注释即可返回json格式的数据,在方法的参数中增加Requestbody 类型的参数即可,代码示例如下: 

    @RequestMapping(value="/errorIndex",method = RequestMethod.GET)   
    @ResponseBody
    public List<String> errorTest(HttpServletRequest request)
    {
        String id=request.getParameter("id");
        Integer inx=Integer.parseInt(id);
        List<String> listMsg=new ArrayList<>();
        listMsg.add(inx.toString());
        return  listMsg;

    }
备注:为方法添加@Responsebody注释后,系统会自动将返回参数转换为json格式,List集合自动添加id参数依次为0:xxx,1:xxx等,当返回参数为Map类型时,系统自动将Key和value转化json格式

四、Spring boot 的全局异常处理

如果代码未经任何异常处理,将在客户端直接显示500服务器内部错误,将给客户非常不好的用户体验,java提供了全局异常处理方式:即实现全局异常处理类,自动捕获程序运行过程中的异常信息,实现友好的异常提示,示例代码如下:

@ControllerAdvice
public class GlobalExceptionHandler {
    @ExceptionHandler(RuntimeException.class)
    @ResponseBody
    @RequestMapping("/dataerror")
    public Map<String,Object> exceptionHandler(Exception ex, HttpServletRequest request){
        Map<String,Object> errorMap=new HashMap<String,Object>();
        errorMap.put("error path:",request.getServletPath());
        errorMap.put("errorMessage",ex.getMessage());
        return  errorMap;
    }
}
备注:

1)、全局异常处理类一定要添加:@ControllerAdvice注释,这样当控制器发生异常时才会自动把异常提交处理类;

2)、异常处理方法一定要使用@ExceotionHandler(RuntimeException.class)注释,表示方法处理来自运行时的异常信息;

 
 
 

猜你喜欢

转载自blog.csdn.net/u012846041/article/details/79173551