做个java框架(7)——Spring框架的注解的学习笔记【20210107】

发表于 2021-01-06 17:54:25
阅读 52

介绍

介绍

所谓注解就是Spring框架的一种编程语法,注解的语法特点是以“@”开通后面根这一个名称,注解一般出现在class定义、对象属性定义、对象方法定义、方法参数定义的场合。

使用注解实现如下一些特殊功能:

  • 可以告知编译器何时调用class对象

  • 可以告知编译器何时调用对象方法

  • 可以告知编译器对象属性的值从何而来

  • 可以告知编译器方法参数的值从何而来

  • 可以给class对象增加特殊方法

  • 可以给class对象指定特殊作用

  • 可以给对象方法指定特殊作用

其实注解的作用远不止福哥上面提到的那些作用。我们要学好Spring框架,首先要学会Spring框架的注解,要能灵活地使用这些注解,让它们为我们的程序提供特殊服务。

注解

@RestController

将这个注解放到class定义前面,就表示这个class是作为REST接口使用的,它会被REST控制器统筹处理。

@RestController
public class SystemController {

@RequestMapping

将这个注解放到对象方法定义前面,在这个注解里面指定一个URI路径,那么用户在访问这个URI路径的时候会自动映射到这个对象方法上面,由这个对象方法进行响应处理。

@RequestMapping("/member/login")
public LoginResult responseLogin(

@RequestParam

这个注解是配合@RequestMapping使用的,在响应处理的对象方法里通过这个注解定义方法参数,则这个参数就会作为URI路径的必选参数,必须通过GET或者POST提供同名参数。

@RequestMapping("/member/login")
public LoginResult responseLogin(
        @RequestParam(value = "user") String user,
        @RequestParam(value = "pwd") String pwd
)

@PathVariable

这个注解是配合@RequestMapping使用的,在通过@RequestMapping设置的URI路径里面使用{}设置参数位之后,就可以通过@PathVariable将参数转成对象方法的参数引入进来。

@RequestMapping(value = "/article/{articleId}", method = RequestMethod.GET)
public ArticleDetail responseArticleDetail(
        @PathVariable(value = "articleId") Integer articleId
)

@Configuration

将这个注解放到class定义前面,这个class就会作为配置对象优先被加载,且只会执行一次。

@Configuration
public class MyJdbcConfig {

@Bean

将这个注解放到对象方法定义前面,该对象方法就成为了Bean方法,且只会被执行一次。

@Bean(name = "mysqlJT")
public JdbcTemplate mysqlJT(

@Qualifier

将这个注解放到对象方法定义前面,声明该方法作为一个服务,可以通过注入方式调用。

@Bean(name = "mysqlJT")
@Qualifier("mysqlJT")
public JdbcTemplate mysqlJT(

@Autowired

将这个注解放到对象属性定义前面,这个对象属性会被@Autowired指定的服务进行注入赋值。

@Autowired
DataSourceConfig myDSC;

@Value

可以使用这个注解调用配置文件application.properties里设置的参数。

public DataSource mysqlDS(
        @Value("${sql.mysql.url}") String url
)

@Data

这个注解是lombok插件特有的,将这个注解放到class定义前面,可以为这个class的属性自动增加getter/setter方法,一般项目里的实体对象都是使用它完成getter/setter方法的。

@Data
public class Member {
    Integer mId;
    String mName;
}

使用

配置文件

000dff3c0706d8a0.jpg

控制器参数注入

51da7e51dcffbc6e.jpg

REST控制器接口

bc3319603c8db0dc.jpg

总结

福哥今天带着童鞋们对于Spring框架的注解进行了一个比较深入的了解,学会了这些之后,我们再去编写Spring程序或者看别人的Spring程序都会顺畅多了。学会了Spring框架的注解的使用之后,我们就可以开始学习使用Spring框架去连接数据库等等外部数据引擎了。

下一课,福哥将带着同学们学习在Spring里使用MySQL数据库的技巧,敬请期待~~