zoukankan      html  css  js  c++  java
  • springboot入门之一:环境搭建(续)

    在上篇博客中从springboot的入门到运行一个springboot项目进行了简单讲述,详情请查看“springboot入门之一”。下面继续对springboot做讲述。

    开发springboot测试类

    在上篇博客中仅仅是把一个springboot环境的项目运行起来,但并没有进行实际的开发测试,下面进行开发测试,请看下面的类,

    package cn.com.my.study01.controller;
    
    import java.util.ArrayList;
    import java.util.List;
    
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RestController;
    
    @RestController
    public class TestController {
    
        @RequestMapping("/test")
        public List test() {
            List list=new ArrayList();
            
            list.add("hello springboot");
            
            return list; 
        }
    }

    针对上面这个类,请注意以下几点,

    1、此类的位置;

    2、此类使用@RestCotroller注解;

    3、方法上使用@RequestMapping注解;

    对于第一点类的位置暂时不做说明,第二点使用@RestController注解,这个注解在之前的springMVC的框架下是没有的,那么此注解的作用是什么那,

    @RestController

    这个注解其实是@controller和@ResponseBody两个注解的合集,即使用@RestController的类中的方法返回的都是JSON格式的数据。在SpringMVC中我们知道,使用@controller注解标注一个类,如果某个方法返回JSON格式的数据,那么需要在方法上加@ResponseBody注解,默认情况下返回的是逻辑页面的地址。切记,在springboot中使用了@RestController注解后,所有的方法返回的都是JSON格式的数据。

    下面在来看第三点,使用@RequestMapping注解,这个注解都不陌生,在SpringMVC中就有这样一个注解,后面跟value属性可以映射请求路径,@RestMapping同样可以作用在类上,那么请求路径就是类上的路径+方法上的路径。

    下面启动springboot服务,访问http://localhost:8080/test,页面如下

    从上图中可以看到返回了JSON格式的数据。

    springboot启动类

    下面看下springboot的启动类,

    package cn.com.my.study01;
    
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    
    @SpringBootApplication
    public class Study01Application {
    
        public static void main(String[] args) {
            SpringApplication.run(Study01Application.class, args);
        }
    
    }

    针对上面的类,请注意以下几点,

    1、此类的位置;

    2、@SpringBootApplication注解;

    针对第一点暂不做说明,请看第二点

    @SpringBootApplication注解

    此注解在SpringMVC中没有,是springboot的新注解么,其实它也是几个注解的合集,即@Configuration、@EnableAutoConfiguration、@ComponentScan。

    1、@Configuration,此注解其实很熟悉,只不过使用频率可能不高,在spring中要配置一个bean,需要在bean的配置文件中,声明一个<bean></bean>标签,这样这个bean才会被加载到spring容器中,其实除了这种方式还有另外一种,那就是使用注解的方式。使用注解的方式不再需要bean的配置文件,在一个类上使用了@Configuration注解,那么这个类的作用就是一个bean的配置文件(例,application-context.xml),在使用注解的方式中如何配置类那,肯定还是注解,@Configuration的好伙伴@bean,此注解作用于方法上,此方法的返回值必须是一个Java的类实例,下面对两种方式进行对比。配置文件的方式,application-context.xml文件如下,

    <bean id="myCar" class="cn.com.my.study01.config.Car"/>

    使用注解的方式,

    package cn.com.my.study01.config;
    
    import org.springframework.context.annotation.Bean;
    
    @org.springframework.context.annotation.Configuration
    public class Configuration {
    
        @Bean
        public Car car() {
            return new Car();
        }
    }

    切记,使用了@configuration的类相当于bean的xml文件,类中使用了@Bean注解的方法相当于bean配置文件中的<bean></bean>标签。

    2、@EnableAutoConfiguration,自动配置spring上下文。

    3、@ComponentScan,自动扫描指定包下的类,并把扫描到的类注册到spring容器中,扫描的注解范围包括@Service、@Controller、@Repository注解,注意@ComponentScan这个注解有个默认扫描的范围,即springboot启动类所在的包及其下的子包,都是@ComponentScan默认的扫描范围。让我们回到之前需要注意类的包路径的地方,可以发现TestController类的包为:cn.com.my.study01.controller,springboot的启动类的包为:cn.com.my.study01,那么写的TestController是可以被扫描到的,所以这里建议把需要注册为spring容器中bean的类放在启动类的包及其子包下。

    通过上面的描述,了解了@SpringBootApplication这个注解,这里还有一个疑问,如果类不在启动类所在的包及其子包下,要怎么办?

    配置,@SpringBootApplication注解有配置,请看下图,

    可以通过配置的方式,配置需要扫描的包及其类。可以自行实验。

    现在,已经也可自行搭建SpringBoot的开发环境,也可以自行进行测试开发。

    关于springboot入门的小知识就写到这里,下面会持续更新关于springboot其他方面的知识,敬请关注,

    有问题欢迎指正,感谢!

  • 相关阅读:
    MySQL锁
    MySQL索引
    MySQL基础
    删除文件时提示:一个意外错误使您无法复制该文件夹0x80070570
    教育部认可的44项全国学科竞赛名单
    打开dnsmasq log
    使用gdb调试user程序
    ipv6获取地址
    vlc产生组播流
    xxl-job搭建、部署、SpringBoot集成xxl-job
  • 原文地址:https://www.cnblogs.com/teach/p/10328287.html
Copyright © 2011-2022 走看看