spring的优缺点
spring优点:
spring缺点:
虽然Spring的组件代码是轻量级的,但是它的配置却是重量级的。开始,spring用XML配置,而且是很多XML配置,Spring2.5引入了基于注解的组件扫描,这消除了大量针对应用程序自身组件的显示XML配置,spring3.0引入了基于Java的配置,这是一种类型安全的可重构配置方式,可以代替XML
springBoot的特点:
1.为了基于Spring的开发提供更快的入门体验
2.开箱即用,没有代码生成,也无需XML配置,同时也可以修改默认值来满足特定的需求
3.提供了一些大型项目中常见的非功能性特性,如嵌入式服务、安全、指标、健康监测、外部配置等
4.SpringBoot不是对Spring功能上的增强,而是提供了一种快速使用Spring的方式
SpringBoot的核心功能
1.起步依赖
起步依赖本质上市一个Maven项目对象模型(Project Object Model, POM), 定义了对其他库的传递依赖,这些东西加在一起即支持某项功能。
简单的说,起步依赖就是讲具备功能的坐标打包到一起,并提供一些默认的功能
2.自动配置
SpringBoot的自动配置是一个运行时(更准确的说,是应用程序启动时)的过程,考虑了众多因素,才决定Spring配置应该用哪个,不该使用哪个,该过程是Spring自动完成的。
一、快速入门
1.1添加SpringBoot的起步依赖
SpringBoot要求,项目要继承SpringBoot的起步依赖spring.boot.starter.parent
<!--所有的springboot工程都必须继承spring-boot-starter-parent-->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.1.RELEASE</version>
</parent>
SpringBoot要集成SpringMVC进行Controller的开发,所以项目要导入web的启动依赖
<!--web功能的起步依赖, 集成了springMVC的坐标-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
1.2编写SpringBoot引导类
要通过SpringBoot提供的引导类起步SpringBoot才可以进行访问
package com.shi;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
/**
* SpringBootApplication表示此类为SpringBoot的引导类
*/
@SpringBootApplication
public class MySpringBootApplication {
public static void main(String[] args) {
SpringApplication.run(MySpringBootApplication.class);
}
}
1.3编写Controller
在引导类MySpringBootApplication同级或者子级中创建QuickStartController
package com.shi.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
public class QuickController {
@RequestMapping("/quick")
@ResponseBody
public String quick() {
return "hello springboot";
}
}
1.4SpringBoot热部署
我们在开发中反复修改类,页面等资源、每次修改后都是需要重新启动才生效,这样每次启动都很麻烦,浪费了大量的时间,我们可以在修改代码后不重启能生效,在pom.xml中添加如下配置就可以实现这样的功能,我们称之为热部署
<!--热部署配置-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
</dependency>
注意:IDEA进行SpringBoot热部署失败原因
出现这种情况,并不是热部署配置问题,其根本原因是Intellij IDEA默认情况下不会进行自动编译,需要对IDEA进行自动编译的设置:
image.png
然后Shift+Ctrl+Alt+/ ,(苹果Shift+ command + option+/)选择Registry,在选择compiler.automake.allow.when.app.running
image.png image.png
网友评论