浅谈:
首先,Spring是为了解决企业级应用开发的复杂性而创建的,简化开发
为了降低Java开发的复杂性,Spring采用了以下4种关键策略:
1、基于POJO(Plain Ordinary Java Object)的轻量级和最小侵入性编程,所有东西都是bean;
2、通过IOC,依赖注入(DI)和面向接口实现松耦合;
3、基于切面(AOP)和惯例进行声明式编程;
4、通过切面和模版减少样式代码,RedisTemplate,xxxTemplate;
springboot实质还是一个Java web框架 比起之前的struts框架等等简化很多,和SpringMVC类似,对比其他javaweb框架的好处,官方说是简化开发,约定大于配置, you can “just run”,能迅速的开发web应用,几行代码开发一个http接口。
就如同狂神总结的规律一样:从一个复杂应用场景 衍生 一种规范框架,人们只需要进行各种配置而不需要自己去实现它,这时候强大的配置功能成了优点;发展到一定程度之后,人们根据实际生产应用情况,选取其中实用功能和设计精华,重构出一些轻量级的框架;之后为了提高开发效率,嫌弃原先的各类配置过于麻烦,于是开始提倡“约定大于配置”,进而衍生出一些一站式的解决方案
那么 spring boot的优点在于何处:
为所有Spring开发者更快的入门
开箱即用,提供各种默认配置来简化项目配置
内嵌式容器简化Web项目
没有冗余代码生成和XML配置的要求
说起这个xml文件的配置 就很繁杂 特别是到springMVC的spring-servlet.xml 里的配置
开发一个springboot项目:
开发环境:
1、maven 3.8.4 个人用到的
2、JDK 1.8 Java 8
3、springboot 2.X(最新版)
集成开发环境:IDEA
file——new——project
选择spring initalizr (之后的表格选择按照之前的配置选择即可)
选择初始化的组件(初学勾选 Web 即可)——springWeb
通过上面步骤完成了基础项目的创建。就会自动生成以下文件。
1、程序的主启动类
2、一个 application.properties 配置文件
3、一个 测试类
4、一个 pom.xml(maven 管理依赖)
之后在同目录下也就是你初期创建的包下创建Controller包 编写创建controller类 创建一个接口
@RestController
public class HelloController {
@RequestMapping("/hello")
public String hello() {
return "Hello World";
}
}
注意:
这里的注解 使用的是@RestController 而不是@Controller 因为你的业务类是返回的是字符串对应相应的注解 使用@controller是会报如下
错误:
不同于之前学习servlet以及springMVC 运行会自动弹出浏览器界面 需要手动输入uri
将项目打成jar包,点击 maven的 package
出现打包错误的解决方案:
需要在pom.xml里的依赖:
<!--
在工作中,很多情况下我们打包是不想执行测试用例的
可能是测试用例不完事,或是测试用例会影响数据库数据
跳过测试用例执
-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<!--跳过项目运行测试用例-->
<skipTests>true</skipTests>
</configuration>
</plugin>