SpringBoot 中针对同一类型的参数,可以用一个类来集中访问

来源:互联网 发布:哪个直播软件好 编辑:程序博客网 时间:2024/06/05 18:39

SpringBoot 中针对同一类型的参数,可以用一个类来集中访问,降低使用value(“{xxx.xxxx}”)在调用中的耦合.比如在AmazonProperties 类中收集参数,@ConfigurationProperties(“amazon”)用来标记参数是由amazon开头,属性associateId的值则来自application.properties中的amazon.associateId=xxx的值“xxx”。具体代码如下:

`
package com.bookcity.readingList;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

/**
* 收集amazon属性
*
* @author Mr.c
* @create 2017-11-06
*/

@Component
@ConfigurationProperties(“amazon”)
public class AmazonProperties {
private String associateId;

public String getAssociateId() {    return associateId;}public void setAssociateId(String associateId) {    this.associateId = associateId;}

}
`
在Controller中的调用为

package com.bookcity.controller;import com.bookcity.readingList.AmazonProperties;import com.bookcity.readingList.Book;import com.bookcity.readingList.ReadingListRepository;import io.swagger.annotations.Api;import io.swagger.annotations.ApiOperation;import io.swagger.annotations.ApiParam;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.boot.context.properties.ConfigurationProperties;import org.springframework.stereotype.Controller;import org.springframework.ui.Model;import org.springframework.web.bind.annotation.*;import java.util.List;/** * 阅读列表控制器 * * @author Mr.c * @create 2017-11-03 * Copyright: Copyright (c) 2017 */@RequestMapping(value = "/readingList")@RestController@Api(value ="ReadingListController",description = "ReadingListController")public class ReadingListController {    private ReadingListRepository readingListRepository;    private AmazonProperties amazonProperties;//注入AmazonProperties      //构造器    @Autowired    public  ReadingListController(ReadingListRepository readingListRepository,AmazonProperties amazonProperties){        this.readingListRepository=readingListRepository;        this.amazonProperties=amazonProperties;    }    @ApiOperation(value = "查询读书列表",notes = "通过读者查询列表")    @RequestMapping(value = "/{reader}",method = RequestMethod.GET)    public String readersBooks(@PathVariable("reader")@ApiParam(value = "reader",name = "reader",required = true) String reader,@RequestBody     Model model){        List<Book> readingList = readingListRepository.findByReader(reader);        if(!readingList.isEmpty()){            model.addAttribute("books",readingList);            model.addAttribute("reader",reader);            //参数调用 amazonProperties.getAssociateId()            model.addAttribute("amazonID", amazonProperties.getAssociateId());        }else{            model.addAttribute("books",readingList);        }        return "readingList";    }    @RequestMapping(value="/{reader}",method = RequestMethod.POST)    public  String addToreadingList(@PathVariable("reader") String reader,Book book){         book.setReader(reader);         readingListRepository.save(book);         return  "redirect:/readingList/{reader}";    }}
阅读全文
0 0
原创粉丝点击