Spring中的注解——开发利器

在最开始spring全部的注入方式都是以XML文件的方式注入,但随着spring的更新,人们逐渐发现这种方式比较繁琐,在后来的版本中,使用着XML和注解结合的方式进行配置,再后来,当注解越来越完善时,Spring已经可以用全注解的方式进行所有配置
当然,想要用到全注解配置也是有一定的门槛的——首先,得知道各种配置的用处:自然,知道才能使用

Bean

Bean容器是贯穿Spring的一个很重要的概念,先看一下和Bean相关的一些Spring注解
@Autowired
将对象导入到当前类中,将对象交给Spring容器进行管理,被注入的类同样也需要交给Spring容器进行管理
例子:
将一个Service类注入到Controller

@Service
public class Service{
}
public class Controller{
	@Autowired
	private Service service;
}

@Repository
注解Dao层,主要用于数据库的一些相关操作
例子:

@Repository
public class Dao{
}

@Service
注解服务(service)层,主要有一些逻辑,和Dao层联系
例子:

@Service
public class Service{
}

@Controller
主要spring控制层,可接收用户请求,调用Service并返回数据给前端
例子:

@Controller
public class Controller{
}

@Component
可标注任意类为Spring的组件,若一个类不知道是上面哪层,那么便可以使用@Conponent注解进行标注

@RestController
@RestController是@Controller和@ResponseBody的结合,是一个控制器,并且返回JSON或者XML类型数据,而不是直接返回视图

@Scope
声明Bean的作用域
常见的四种Bean的作用域
singleton:单例bean,Spring中的Bean默认都是单例的
prototype:每次请求都会创建一个新的bean实例
request:每一次HTTP请求都会创建一个新的bean实例,该bean在当前request内有效
session:每一次HTTP请求都会创建一个新的bean实例,该bean在当前session内有效

例子:

@Bean
@Scope("singleton")
public User userSingleton(){
	return new User();
}

HTTP

@RequsetMapping()
是一个处理请求地址映射的注解,用于类或者方法上
有以下属性:
value:指定请求的地址
method:指定请求的method类型
consumes:指定处理请求的提交内容类型
produces:指定返回的内容类型
params:指定请求中需要的某些参数值
headers:指定请求中必须有的某些header值

@RequestMapping("/bill")
public class BillController {
    
    @RequestMapping("/list")
    public String list(Bill b , Model model){
        return "/bill/list";
    }
}

@GetMapping
从服务器获取资源
method为GET的RequestMapping
@GetMapping(“user”)
相当于
@RequestMapping(value="/user",method=RequestMethod.GET)

@PostMapping
服务器上创建一个新的资源
method为POST的RequestMapping
@PostMapping(“user/{id}”)
相当于
@RequestMapping(value="/user/{id}",method=RequestMethod.POST)

@PutMapping
更新服务器上的资源
method为PUT的RequestMapping
@PutMapping(“user”)
相当于
@RequestMapping(value="/user",method=RequestMenthod.PUT)

@DeleteMapping
从服务器删除特定的资源
method为DELETE的RequestMapping
@DeleteMapping("/user/{id}")
相当于
@RequestMapping(value="/user/{id}" , method=RequestMethod.DELETE)

传值

@PathVariable
获取路径的参数
例子

@GetMapping("/user/{id}")
public int getId(@PathVariable("id") long id){
return id;
}

其中id就是URL中的id

@RequestBody
读取Request请求的body并且读取其中的JSON数据为对象
例子

@PostMapping("/sign")
public User sign(@ResponseBody User user){
return user;
}

当发送请求到这个方法,且其中携带JSON数据,如
{“username”:“hhw”,“password”:“123456”}
时,就可以直接把JSON数据映射到类中

先到这里吧,以后有新认识的注解也可以加入其中,不定时更新

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值