在上篇博客中从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其他方面的知识,敬请关注,

有问题欢迎指正,感谢!

springboot入门之一:环境搭建(续)的更多相关文章

  1. 【个人笔记】003-PHP基础-01-PHP快速入门-03-PHP环境搭建

    003-PHP基础-01-PHP快速入门 03-PHP环境搭建 1.客户端(浏览器) IE FireFox CHROME Opera Safari 2.服务器 是运行网站的基本 是放置程序代码的地方 ...

  2. Android入门之环境搭建

    欢迎访问我的新博客:http://www.milkcu.com/blog/ 原文地址:http://www.milkcu.com/blog/archives/1376935560.html 原创:An ...

  3. scala 入门Eclipse环境搭建

    scala 入门Eclipse环境搭建及第一个入门经典程序HelloWorld IDE选择并下载: scala for eclipse 下载: http://scala-ide.org/downloa ...

  4. 新手嘛,先学习下 Vue2.0 新手入门 — 从环境搭建到发布

    Vue2.0 新手入门 — 从环境搭建到发布 转自:http://www.runoob.com/w3cnote/vue2-start-coding.html 具体文章详细就不搬了,步骤可过去看,我这就 ...

  5. scala 入门Eclipse环境搭建及第一个入门经典程序HelloWorld

    scala 入门Eclipse环境搭建及第一个入门经典程序HelloWorld 学习了: http://blog.csdn.net/wangmuming/article/details/3407911 ...

  6. 总结Vue 第四天:vue-cli(Vue2.0 新手入门 — 从环境搭建到发布)

    总结Vue 第四天:vue-cli(Vue2.0 新手入门 - 从环境搭建到发布) 一.Vue CLI----(Vue2.0 新手入门 - 从环境搭建到发布): ■   CLI是Command-Lin ...

  7. 一、springBoot简介与环境搭建

    前言:学习计划 1.springBoot环境搭建 2.springBoot入门 3.srpingBoot整合Mybatis 4.springBoot整合Redis,Redis集群 5.springBo ...

  8. JAVA WEB快速入门之环境搭建

    前言 我是一直致力于:.NET技术栈.WEB前端.架构设计相关的开发与管理工作,但因国内大环境影响及公司技术方向发生转变(由.NET全部转为JAVA),需要熟练掌握JAVA WEB相关的知识,故我也得 ...

  9. OpenCV3入门1—环境搭建与实验

    1.环境搭建 1.1 VS2017开发环境搭建 1).下载软件包 https://opencv.org/ 2).配置环境变量 配置win10系统环境变量,把下面路径添加到path. D:\WORK\5 ...

  10. python从零开始基础入门——开发环境搭建:Visual Studio Code

    前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者:山海皆可平z PS:如有需要Python学习资料的小伙伴可以加点击下方 ...

随机推荐

  1. P2258 子矩阵

    题目描述 给出如下定义: 子矩阵:从一个矩阵当中选取某些行和某些列交叉位置所组成的新矩阵(保持行与列的相对顺序)被称为原矩阵的一个子矩阵. 例如,下面左图中选取第 222 . 444 行和第 222 ...

  2. Python 模块化 from .. import 语句资源搜索顺序 (三)

    接着上一篇文章最后的import子句资源搜索顺序,我们来写几个例子了解下. 例一. #test1.py x = 123 #test.py import test1 print(dir()) print ...

  3. 阿里云阿里免费ssl wap网站在手机微信、手机浏览器无法访问

    图片可以访问,样式无法显示 https://css.cnbuses.com/css/wap/gonggong.css 1,怀疑是开了代理访问. 关闭后还是访问空白. 2.在手机浏览器打开,提示该网站的 ...

  4. LeetCode41.缺失的第一个正数 JavaScript

    给定一个未排序的整数数组,找出其中没有出现的最小的正整数. 示例 1: 输入: [1,2,0] 输出: 3 示例 2: 输入: [3,4,-1,1] 输出: 2 示例 3: 输入: [7,8,9,11 ...

  5. linux查看nginx、apache、php、php-fpm、mysql及配置项所在目录

    可以先总结下:大都是先用 which 获取目录:然后再获取配置项位置: which  mysql /usr/bin/mysql /usr/bin/mysql --help | grep -A1 'De ...

  6. Java中InputStream和String之间的转化

    https://blog.csdn.net/lmy86263/article/details/60479350 在Java中InputStream和String之间的转化十分普遍,本文主要是总结一下转 ...

  7. Apache 各启动方式的差别

    apachectl 调用 $httpd -k 1. kill - TERM `cat /usr/local/apache/logs/http.pid` 2. /bin/httpd -k  stop/s ...

  8. JAVA 8 新特性 __ Optional 类

    Optional 类是一个可以作为null容器的对象,若值存在调用isPresent()就返回 true,调用get()会返回该对象. Optional是一个容器,可以保存类型T的值,或者仅仅保存nu ...

  9. shiro使用框架,自定义过滤器

    1.shiro配置文件配置 <!-- Shiro Filter --> <bean id="shiroFilter" class="org.apache ...

  10. mysql的索引和执行计划

    一.mysql的索引 索引是帮助mysql高效获取数据的数据结构.本质:索引是数据结构 1:索引分类 普通索引:一个索引只包含单个列,一个表可以有多个单列索引. 唯一索引:索引列的值必须唯一 ,但允许 ...