Spring Boot常用注解解析

未来框架的趋势是“约定大于配置”,代码的封装会越来越严密。开发人员只需将精力放到代码逻辑编写和整体代码优化上,所以注解式变编程将会广泛的使用。

什么是注解式编程

注解一般用来定义一个类,属性或者是方法,以便程序能够编译运行,他相当于一个说明文件,告诉程序某个被注解的类或者属性是什么,该如何处理。注解可以用于标注包,类,方法,和变量等。

常用的系统注解

@Override 用于修饰方法,表明此方法重写了父类方法。
@Deprecated 用于修饰方法,表明此方法已经过时,一般伴随着版本升级会遇到。
@SuppressWarnnings 告诉编译器忽略某些警告。

使用在类名上的注解

@RestController 作用相当于@ResponseBody加上@Controller一起使用。

@RestController
public class HelloController{
    
    
	@RequestMapping("/hello")
	public String hello(){
    
    
		return "hello,springboot";
	}
}

@Controller 声明此类是个SpringMVC Controller对象。
下面的代码与@RestController中的代码是等效的。

@Controller
public class HelloController{
    
    
	@RequestMapping("/hello")
	@ResponseBody
	public String hello(){
    
    
		return "hello,springboot";
	}
}

@Service 声明一个业务处理类,用于标注服务层,处理业务逻辑。
@Reponsitory 声明数据库访问类,用于标注数据访问层。
@Component 代表是Spring管理类,它用于把普通的POJO实例化到Spring容器中,当类不属于@Service或者@Controller等时,可以使用@Component来标注,相当于通用的注解。
@Configuration 声明该类是个配置类,常和@Bean搭配使用,并且可以被Spring容器自动处理。他作为Bean的载体,用来指示一个类声明,一个或者多个@Bean方法。
@Resource @Resource和@Autowired都可以用来装配Bean,用来进行依赖注入,也都可以写在字段上或者Setter方法上。

//作用在变量上
public class HelloController{
    
    
  @Resource
  private HelloController hellocontroller;
}

//作用在方法上
public class HelloController{
    
    
  @Resource(name="xxxDao")
  public void setXxxDao(XxxDao xxxDao) {
    
    
    this.xxxDao = xxxDao;    
  }
}

@Autowired 他表示被修饰的类需要注入对象,是Spring提供的注解,只能通过byType的方式自动注入。Spring会扫描所有被@Autowired标注的类,然后根据类型在IoC容器中找到匹配的类进行注入。被@Autowired注解的类不用再导入文件。

//作用在变量上
public class HelloController{
    
    
  @Autowired
  private HelloController hellocontroller;
}

//作用在方法上
public class HelloController{
    
    
  @Autowired
  public void setXxxDao(XxxDao xxxDao) {
    
    
    this.xxxDao = xxxDao;    
  }
}

@RequestMapping 用来处理请求地址映射,用在类或方法上,如果作用在类上,则表示类中所有响应请求的方法都是以该地址作为父路径。可以参考@RestController中的代码,
@Qualifier 用于标注哪一个实现类才是需要注入的,@Qualifier的参数名称为被注入的类中的注解@Service标注的名称。@Qualifier常和@Autowired一起使用。

@Autowired
@Qualifier("articleService")
//@Resource和他不同,@Resource自带name属性。

使用在方法上的注解

注解 使用位置 注解说明
@RequestBody 方法参数前 常用来处理JSON/XML格式的数据,将接收到的数据转换为指定类型参数。
@PathVariable 方法参数前 用于获取路径中的参数,将URL获取的参数映射到方法参数上。
@Bean 方法上 声明该方法的返回结果是个由Spring管理的Bean。
@ResponseBody 方法上 通过转换器将控制器中方法返回的对象转换为指定数据类型,然后写入Response对象的body数据区。

@RequestBody
例如用AJAX提交数据,然后控制器接收数据。

$.ajax{
    
    
	url:"/post",
	type:"POST",
	data:'{"name":"zhangsan"}',
	contentType:"application/json charset=utf-8",
	success:function(data){
    
    
	alert("success!");
	}
}
@RequestMapping("/post")
	public void post(@RequestBody String name){
    
    
	//代码块
	}

@ResponseBody
使用此注解后,数据直接写入输入流中,不要进行视图渲染。

@GetMapping("/test")
@ResponseBody
	public String test(){
    
    
		return "test";
	}

结尾

这里只列举了一些常用的注解,Spring Boot还有很多注解,在以后的项目开发中可以慢慢学习。

猜你喜欢

转载自blog.csdn.net/qq_51118386/article/details/122452823