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

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}";

    }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值