目录
-
@SpringBootApplication
-
@SpringBootConfiguration
-
@EnableAutoConfiguration
-
@ComponentScan
-
@Autowired
-
@Data
-
@Controller
-
@Service
-
@Repository
-
@RequestMapping
-
@Value
-
@PathVariable
-
@Bean
-
@TableName
-
@TableId
-
@RequestParam
@SpringBootApplication
@SpringBootApplication:它是一个组合注解,替代 @SpringBootConfiguration、@EnableAutoConfiguration、@ComponentScan,以下是它部分的源码:
@SpringBootConfiguration
@SpringBootConfiguration:标注这个类是一个配置类;它只是@Configuration注解的派生注解;它与@Configuration注解的功能一致;只不过@SpringBootConfiguration是springboot的注解,而@Configuration是spring的注解
@EnableAutoConfiguration
@EnableAutoConfiguration:启用 SpringBoot 的自动配置。
@ComponentScan
@ComponentScan:主要是从约定的扫描路径中,识别标注了组件注册注解的类,并且把这些类自动注册到spring IoC容器中,这些类就是我们通常所言的bean。IoC容器是Spring的特色之一,可以使用它管理bean。
@Autowired
@Autowired: 为组件自动赋值,自动查找IoC容器,找到就赋值,查找的方式是从类型寻找,有可能找到多个。一般使用在构造方法前面,在其它地方使用会警告,但不影响使用。
@Data
@Data:使用@Data注解要先引入lombok,lombok 是什么,它是一个工具类库,可以用简单的注解形式来简化代码,提高开发效率。一般直接在实体类前加@Data注解,注在类上,提供类的get、set、equals、hashCode、canEqual、toString方法,在pom.xml引入依赖:
@Data
@TableName("sys_user")
public class SysUser {
@TableId(type = IdType.AUTO)
private Long id;
private String username;
private String password;
private String salt;
}
@Controller
@Controller:自动映射 URL。@Controller 注解可以自动将请求映射到控制器的方法上。支持视图解析。@Controller 注解可以将方法的返回值解析为视图,并渲染到客户端,一般在在控制层使用。
@Service
@Service:它标识一个类作为业务逻辑的服务组件。通过 @Service 注解,Spring 容器会自动扫描并创建这些服务组件,实现业务逻辑的松耦合和模块化。
@Repository
@Repository:指示装饰的类是存储库。 存储库是一种用于封装存储,检索和搜索行为的机制,该机制模仿对象的集合。 它是@Component注解的一种特殊功能,允许通过类路径扫描自动检测实现类。
@RequestMapping
@RequestMapping:将请求和处理请求的控制器方法关联起来,建立映射关系。 SpringMVC 接收到指定的请求,就会来找到在映射关系中对应的控制器方法来处理这个请求。
@Value:将配置文件中key对应的值赋值给它标注的属性。
@PathVariable
@PathVariable:将URL路径变量绑定到方法的参数上,如果方法参数为Map<String, String>,则将使用所有路径变量名称和值填充映射。 它具有以下可选元素: name-要绑定到的路径变量的名称; required-指示路径变量是否为必需; 值-名称的别名。
@Bean
@Bean:产生一个Bean对象,然后这个Bean对象交给Spring管理。 产生这个Bean对象的方法Spring只会调用一次,随后这个Spring将会将这个Bean对象放在自己的IOC容器中。
@TableName
@TableName:注解用来将指定的数据库表和 javaBean 进行映射。例如:
@Data
@TableName("orders")
public class Order {
@TableId(type = IdType.AUTO)
private Long id;
@TableField("in_dateTime")
private Date inDateTime;
@TableField("out_dateTime")
private Date outDateTime;
private BigDecimal price;
@TableField("is_pay_complete")
private boolean isPayComplete;
@TableField("is_require_invoicing")
private boolean isRequireInvoicing;
private PricingStandard pricingStandard;
private ParkingLot parkingLot;
private Vehicle vehicle;
}
@TableId
@TableId:专门用在主键上的注解,如果数据库中的主键字段名和实体中的属性名,不一样且不是驼峰之类的对应关系,可以在实体中表示主键的属性上加@Tableid注解,并指定@Tableid注解的value属性值为表中主键的字段名既可以对应上。
@RequestParam
@RequestParam:用于将指定的请求参数赋值给方法中的形参。例如:
@RequestMapping(value = "/save", method = RequestMethod.POST)
public String save(@ModelAttribute("order") Order entity
,@RequestParam("isPayCompleted" ) boolean isPayCompleted
,@RequestParam("isRequireInvoicing") boolean isRequireInvoicing
,@RequestParam("parkingLotId") Long parkingLotId
,@RequestParam("pricingStandardId") Long pricingStandardId
,@RequestParam("vehicleId") Long vehicleId)throws Exception {...
}