目录
什么是SpringBoot
Spring就是一个javaweb的开发框架,和SpringMVC类似,对比其他Javaweb的好处,官方说是简化开发,约定大于配置,能迅速开发的web应用,几行代码开发一个http接口
SpringBoot的主要优点:
- 为所有Spring开发者更快速的入门
- 开箱即用,提供各种默认配置来简化项目配置
- 内嵌式容器简化Web项目
- 没有冗余代码生成和XML配置的要求
SpringBoot的核心功能
- 起步依赖
起步依赖本质上是一个Maven项目对象模型(Project Object Model,POM),定义了对其他库的传递依赖,这些东西加在一起即支持某项功能。
简单的说,起步依赖就是将具备某种功能的坐标打包到一起,并提供一些默认的功能。
- 自动配置
Spring Boot的自动配置是一个运行时(更准确地说,是应用程序启动时)的过程,考虑了众多因素,才决定Spring配置应该用哪个,不该用哪个。该过程是Spring自动完成的。
SpringBoot的配置文件
SpringBoot配置文件类型和作用
SpringBoot是基于约定的,所以很多配置都有默认值,但如果想使用自己的配置替换默认配置的话,就可以使用application.properties或者application.yml(application.yaml)进行配置。
SpringBoot默认会从Resources目录下加载application.properties或application.yml(application.yaml)文件
其中,application.properties文件是键值对类型的文件,之前一直在使用,所以此处不在对properties文件的格式进行阐述。除了properties文件外,SpringBoot还可以使用yml文件进行配置。
application.yml配置文件
YML文件格式是YAML (YAML Aint Markup Language)编写的文件格式,YAML是一种直观的能够被电脑识别的的数据数据序列化格式,并且容易被人类阅读,容易和脚本语言交互的,可以被支持YAML库的不同的编程语言程序导入,YML文件的扩展名可以使用.yml或者.yaml。
实体类(entity)的注解。
@Data注解
@Data注解的主要作用就是提高代码的简洁,在代码中使用这个注解,便可省去大量的get()、set()等方法,不仅提供了便利,还减少了出错的概率。如下图实体类SysUser,并没有使用get()、set()等方法。
@Data注解的功能:
- @Data可以为类提供读写功能,从而不用写get、set方法。
- 会为类提供 equals()、hashCode()、toString() 方法。
service层的注解
@Service注解
作用:
- 用于标识一个类是Spring容器中的服务组件。@Service是Spring框架中的一个注解,用于标注一个类作为服务类(Service)。
- @Service注解用于类上,标记当前类是一个service类,该注解会将当前类自动注入到spring容器中,在调用该service的时候只需要将该类注入接口中
@Autowired注解
作用:
- 用于自动装配Spring容器中的Bean。
- 在调用service类的时候,使用该注解,便可调用service。
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserRepository userRepository;
// 实现UserService接口中的方法
}
Mapper层的注解
@Mapper注解
Mapper的注解就是@Mapper。
1.使用@Mapper将接口交给Spring进行管理
2.不用写Mapper映射文件(XML)
3.为这个接口生成一个实现类,让别的类进行引用
@Mapper
public interface SysUserMapper extends BaseMapper<SysUser> {
}
@Repository注解
@Repository:@Repository
的作用与@Controller
,@Service
的作用都是把对象交给Spring
管理。@Repository
是标注在Dao
层接口上,作用是将接口的一个实现类交给Spring
管理。
@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Component
public @interface Repository {
@AliasFor(
annotation = Component.class
)
String value() default "";
}
controller层的注解
@Controller注解
在 Spring MVC 中,@Controller 注解用于标识一个 Java 类是一个控制器。控制器负责接收请求、处理请求,并返回响应。具体来说,使用 @Controller 注解的类将会被 Spring MVC 自动扫描,并注册为一个控制器。
@Controller 注解的作用和 @Component 注解类似,都是将一个类标记为 Spring 的组件。但是,@Controller 注解还有以下特性:
- 自动映射 URL。@Controller 注解可以自动将请求映射到控制器的方法上。
- 支持视图解析。@Controller 注解可以将方法的返回值解析为视图,并渲染到客户端。
@Controller
public class HelloController {
@GetMapping("/hello")
public String hello() {
return "hello";
}
}
@GetMapping("/hello")
public String hello() {
return "hello";
}
@RequestMapping注解
从注解名称上我们可以看到,@RequestMapping注解的作用就是将请求和处理请求的控制器方法关联起来,建立映射关系。
SpringMVC 接收到指定的请求,就会来找到在映射关系中对应的控制器方法来处理这个请求。
@Controller
@RequestMapping("/hello")
public class TestController {
/**
* 此时请求的路径是/hello/test
* @return
*/
@RequestMapping("/test")
public String success(){
return "success";
}
}
@ModelAttribute注解
该注解标注的方法会在handler具体方法执行之前,作为全局属性存放在Model,供后续handler具体方法执行的时候调用。
private static final String USER_ID = "userId";
@ModelAttribute(USER_ID)
public String getUserId(String userId) {
System.out.println(userId);
return "my" + userId;
}
@RequestParam注解
@RequestParam 是Spring框架中的一个注解,用于将请求参数的值绑定到方法的参数上。它通常用于处理 HTTP 请求中的查询参数或表单参数。
@RequestParam 注解的value 属性值没有对应上jsp中name 值则会直接报400错误,因为required 属性默认为true,不写将会使用默认值。
@PathVariable注解
@PathVariable 映射 URL 绑定的占位符
通过 @PathVariable 可以将 URL 中占位符参数绑定到控制器处理方法的入参中:URL 中的 {xxx} 占位符可以通过
@PathVariable(“xxx”) 绑定到操作方法的入参中。
@RequestMapping(value = "/save",method = RequestMethod.POST)
public String save(@ModelAttribute("order") Order entity
//跟edit对应,是否缴清,是否开发票
, @RequestParam("isPayComplete") boolean isPayComplete
, @RequestParam("isRequireInvoicing") boolean isRequireInvoicing
, @RequestParam("parkingLotId") Long parkingLotId
, @RequestParam("pricingStandardId") Long pricingStandardId
, @RequestParam("vehicleId") Long vehicleId) throws Exception{
任务实现
任务描述: | |
设计一个汽车零部件管理系统,实现对汽车零部件的管理和组装功能。系统包括以下几个零部件: | |
- 发动机(Engine) | |
- 轮胎(Tire) | |
- 制动系统(BrakeSystem) | |
- 燃油系统(FuelSystem) | |
- 冷却系统(CoolingSystem) | |
要求: | |
1. 设计并创建上述零部件的Java类,每个类中包含相应的功能和属性。 | |
2. 使用Spring Boot的依赖注入方式,将各个零部件注入到Car类中。 | |
3. 创建Car类(classpath:/entity),该类包含一个引擎、四个轮胎以及制动系统、燃油系统和冷却系统。 | |
4. 实现Car类的功能,比如启动引擎、加速车辆、刹车等操作。 | |
5. 使用Spring Boot的自动装配功能,在配置文件或主类中配置各个零部件的自动注入。 |