Spring Boot常用注解解析

星星和你都在我怀里 2022-09-23 10:04:45 阅读数:783

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还有很多注解,在以后的项目开发中可以慢慢学习。

版权声明:本文为[星星和你都在我怀里]所创,转载请带上原文链接,感谢。 https://gisee.blog.csdn.net/article/details/122452823