Spring Boot一课一得

目录

什么是SpringBoot

SpringBoot的核心功能

SpringBoot的配置文件

SpringBoot配置文件类型和作用

application.yml配置文件

实体类(entity)的注解。

@Data注解

@Data注解的功能:

service层的注解

@Service注解

@Autowired注解

Mapper层的注解

@Mapper注解

@Repository注解

controller层的注解

@Controller注解

@RequestMapping注解

@ModelAttribute注解 

@RequestParam注解 

@PathVariable注解

任务实现

具体实现步骤:


什么是SpringBoot

Spring就是一个javaweb的开发框架,和SpringMVC类似,对比其他Javaweb的好处,官方说是简化开发,约定大于配置,能迅速开发的web应用,几行代码开发一个http接口
SpringBoot的主要优点:

  1. 为所有Spring开发者更快速的入门
  2. 开箱即用,提供各种默认配置来简化项目配置
  3. 内嵌式容器简化Web项目
  4. 没有冗余代码生成和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的自动装配功能,在配置文件或主类中配置各个零部件的自动注入。

具体实现步骤:

  • 18
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值