Spring Boot 的萌新手册——创建一个HelloDemo

自学springboot的第一天

one 常用注解

  1. @SuppressWarnings(“unchecked”)
    被批注的代码元素内部的某些警告保持静默
  2. @CrossOrigin解决跨域问题
  3. @RestController
    如果只是使用@RestController注解Controller,则Controller中 的方法无法返回jsp页面,或者html,
    配置的视图解析器 InternalResourceViewResolver不起作用,返回的内容就是Return 里的内容。
    如果需要返回到指定页面,则需要用 @Controller配合视图解析器InternalResourceViewResolver才行。
    如果需要返回JSON,XML或自定义mediaType内容到页面,则需要在对应的方法上加上@ResponseBody注解。
  4. @RestController
    注解,相当于@Controller+@ResponseBody两个注解的结合,返回json数据不需要在方法前
    面加@ResponseBody注解了,但使用@RestController这个注解,就不能返回jsp,html页面,视图解析器无法解析jsp,html页面
  5. @RequestMapping("/home")
  6. @RequestMapping(value= “/name”)
    String getName(@RequestParam(value = “person”, required = false) String personName)
    ,因为 required 被指定为 false,所以 getName() 处理方法对于如下两个 URL 都会进行处理:
    /home/name?person=xyz
    /home/name
  7. @SuppressWarnings(“unchecked”)被批注的代码元素内部的某些警告保持静默
  8. @CrossOrigin解决跨域问题
  9. @RestController
  1. 如果只是使用@RestController注解Controller,则Controller中的方法无法返回jsp页面,或者html,
    配置的视图解析器 InternalResourceViewResolver不起作用,返回的内容就是Return 里的内容。
  2. 如果需要返回到指定页面,则需要用 @Controller配合视图解析器InternalResourceViewResolver才行。
    如果需要返回JSON,XML或自定义mediaType内容到页面,则需要在对应的方法上加上@ResponseBody注解。
  1. @RestController注解,相当于@Controller+@ResponseBody两个注解的结合,返回json数据不需要在方法前
    面加@ResponseBody注解了,但使用@RestController这个注解,就不能返回jsp,html页面,视图解析器无法解析jsp,html页面
  2. @RequestMapping("/home")
  3. @RequestMapping(value= “/name”)
    String getName(@RequestParam(value = “person”, required = false) String personName)
    ,因为 required 被指定为 false,所以 getName() 处理方法对于如下两个 URL 都会进行处理:
    /home/name?person=xyz
    /home/name

two 自己搭个hello项目

方法一:

  1. 上这个网站 https://start.spring.io/
    在这里插入图片描述

  2. spring boot的项目嘛当然要选maven project

  3. with 同理我学的Java当然选Java

  4. 第三个空选择springboot版本,目前我用的是1.5.18的(应该是可以范围内最老版本了把,当然springboot 2.*能力更加强大,之后会逐步的去学)

  5. Artifact是项目的名称,group+artifact会形成项目入口的目录

  6. Dependencies依赖作为未来大佬依赖一般都是自己写的(版本要选最适合自己的,自己写的依赖比较放心),一般是空着直接down下来

  7. 解压,导入eclipse(基于maven项目进行导入)

  8. maven-update project
    结果:在这里插入图片描述

  9. 看到目录结构当然要了解每个目录的作用
    1)src/main/java 这个目录 是放代码的(百度来的答案-差评)代码可太多了,目前我看,基本Java写的代码都要放这里。
    2)src/main/resources 这个目录是放资源的(百度来的)什么是资源呢,目前来看,一些配置文件,静态资源等等不用Java写的基本都放这里。
    3)src/test/java 这个目录是放测试文件的,做单元测试的地方,很重要
    4)pom.xml 这不是目录,是写依赖的地方。都能看懂,个人认为这里是项目的半个核心把,这个设计好了做项目事倍功半,要是没设计好0.0.

  10. spring boot内嵌了tomcat只需要写个controller就可以跑起来很神奇

  11. 最基本的依赖

    org.springframework.boot
    spring-boot-starter

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

    spring-boot-starter这个依赖包含了核心模块,包括自动配置支持、日志和YAML
    spring-boot-starter-test这个依赖包含了测试模块,包括JUnit、Hamcrest、Mockito
    spring-boot-starter-web更简单了整合了所以web项目默认使用的东西

  12. 写一个史上最简单的controller

    @RestController
    public class HelloController {
    @RequestMapping("/hello")
    public String index() {
    return “Hello”;
    }
    }
    *注解上面都有所以先看常用注解的好处就体现了出来

  13. 运行下面的文件
    @SpringBootApplication
    public class CompanyWyfApplication {

    public static void main(String[] args) {
    SpringApplication.run(CompanyWyfApplication.class, args);
    }
    }
    别犹豫直接右键run-Java application就可以了
    @SpringBootApplication带有这个注解的就是程序的入口了

  14. ok运行成功
    在这里插入图片描述
    15.测试
    @RunWith(SpringRunner.class)
    @SpringBootTest
    public class CompanyWyfApplicationTests {
    private MockMvc mvc;
    @Before
    public void setUp() throws Exception {
    // 初始化
    mvc = MockMvcBuilders.standaloneSetup(new HelloController()).build();
    }
    @Test
    public void hello() throws Exception {
    String url = “/hello”;
    String expectedResult = “Hello”;
    MvcResult mvcResult = mvc.perform(MockMvcRequestBuilders.get(url).accept(MediaType.APPLICATION_JSON))
    .andReturn();

    int status = mvcResult.getResponse().getStatus();

    String content = mvcResult.getResponse().getContentAsString();

    Assert.assertTrue(“错误”, status == 200);
    Assert.assertFalse(“错误”, status != 200);
    Assert.assertTrue(“数据一致”, expectedResult.equals(content));
    }
    }
    格式不会搞,难受。。。
    run-junit运行搞定
    在这里我遇到一个坑爹的坑
    由于我比较手贱改了CompanyWyfApplication的包名,然后程序测试时候一直报错报错,苦思冥想最后包名一致程序通过。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值