SpringBoot小结

SpringBoot概述

1. SpringBoot是Spring框架中的一员,它简化了Spring的开发,正如Spring简化了EJB的开发一样

2. 虽然Spring的出现,让我们免于定义各种重量级的EJB的Java类,因为通常这些类必须要按某种规范去命名去编写,必须继承某个父类或者实现某些接口,Spring的出现让我们在定义类上简单了很多,清新了很多

3. 但是Spring有一个让人苦恼的地方就是各种各样的配置文件,以及配置文件中的各种标签元素,我们要想使用Spring就必须要熟练地修改配置

4. SpringBoot的出现则改变了这一局面,一个可运行的典型的SpringBoot应用甚至不需要任何配置文件(它只是把原来需要我们手工配置的地方提供了默认的配置),做为Spring框架中的一员,我们依然可以使用配置文件来修改它默认的行为

SpringBoot主要特性

Starter。它将常用的jar包依赖进行了分组与整合,将功能相近的jar包合并到一个Maven项目中进行重新打包发布(这个新的Maven项目就是一个Starter),充分利用了Maven依赖传递的特点,只需要添加一个依赖,就相当于原来添加的多个依赖了,而且经由Starter整合后的jar包依赖版本也是能够互相兼容的,减少了我们的思考成本,提高了我们的开发效率

自动配置。SpringBoot这个特性充分利用了Sping4对条件化配置的支持,它能根据我们使用的jar包依赖,“智能”地推测应用所需要的bean并自动化配置它们,而以前这个工作要交由我们开发人员自己手动配置,费时费力,还有可能出错。当然如果SpringBoot自动化配置出现了问题,依然可以由我们开发人员手动配置来进行更正

除此之外,SpringBoot还有其他特性,大家有余力可以自行学习。但是只要掌握以上2个特性,就已经足以开发出一个能够实际运行得不错的应用项目了

下面我们将以在页面上显示hello world为例给大家讲解一个可运行的最简单的SpringBoot小项目

最简单的pom.xml配置

创建一个简单的空Maven项目,修改pom.xml,添加如下内容

<!-- Spring Boot 必备神器, 配置parent后, dependencies中的依赖g-a-v就可以不用写v了, 这时的version将通过继承parent得到 -->

    <properties>

     <java.version>1.7</java.version>

</properties>

<!--继承于springboot的优良特性-->

<parent>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-parent</artifactId>

<version>1.1.4.RELEASE</version>

</parent>

// 继承于springboot的基础stater,

<dependencies>

<!-- spring MVC 是spring框架中的一个web框架

Struts2 webx

-->

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-web</artifactId>

</dependency>

</dependencies>

 

<build>

<plugins>

<!-- Spring Boot Maven 构建插件 -->

<plugin>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-maven-plugin</artifactId>

</plugin>

</plugins>

</build>

最简单的项目结构

再新建一个启动入口类

@ComponentScan(basePackages = {"cn.lhl"})

@EnableAutoConfiguration

public class MyApp {

public static void main(String[] args) {

SpringApplication.run(MyApp.class, args);

}

}

@ComponentScan(basePackages = {"cn.lhl"})(扫描组件)这个注解,用来告诉SpringBoot自动扫描cn.lhl这个包及其所有子包中的类,有没有加了@Controller @Service @Reposity @Component等注解的类,如果有,就把这些类的对象new出来,以便自动配置进行依赖注入等工作

@EnableAutoConfiguration这个注解则告诉SpringBoot启动自动配置功能

元注解:用来注解注解的注解

如果不指定包,就会扫描MyApp(启动类)所在的包

 

再新建一个控制器类

@RequestMapping("/home")

@Controller

public class HomeController {

@RequestMapping(value = "/hw", method = RequestMethod.GET, produces = "text/html;charset=UTF-8")

@ResponseBody

public String hw() {

return "hello world 你好";

}

}

1. @RequestMapping("/home")(映射器)这个注解用在控制器类中,用于告诉SpringBoot HTTP请求地址对应的逻辑是哪个类的哪个方法。

2. @Controller是一个组件

3. Spring核心概念 IoC(inverse of control(DI DL)) AoP(aspect oriented programming)

4. 可以给映射器加多个地址:@RequestMapping("/home",”/index”);但是一个地址只能对应一个功能,但是一个功能可以多个地址对应

5. 其中的method的值如果是RequestMethod.GET则这个方法会响应一个GET请求,produces = "text/html;charset=UTF-8"则与@ResponseBody搭配使用,告诉SpringBoot将此方法的返回值当做普通的HTML文本(一般是json字符串)返回给请求者

6. @ResponseBody内容可见,实际上是json字符串

7. @ResponseBody与@RequestBody的区别在于:前者一般要求响应内容是一个JSON字符串,而后者要求请求的内容必须是一个JSON字符串;前者配置在方法上,后者配置在参数上

8. 从地址栏发的请求是get请求,post请求要用ajax或者???

将MyApp这个类像一个普通的Java Application一样运行起来

再打开浏览器,地址栏中输入如下地址,回车

http://127.0.0.1:8080/home/hw

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值