myeclipse的spring boot项目中找不到source下的文件

出现的原因是因为运行spring boot项目时是会编译文件的,而你的properties文件没有编译进去。
解决办法是:选择项目右键--->properties-->java build path-->xxx/src/main/resources--->选择excluded编辑移除下面一栏的内容即可
注:java build path 就是你编译后的预览


注解的几种形式
 @Value("normal")
   private String normal; // 注入普通字符串

    @Value("#{systemProperties['os.name']}")
    private String systemPropertiesName; // 注入操作系统属性

    @Value("#{ T(java.lang.Math).random() * 100.0 }")
    private double randomNumber; //注入表达式结果

    @Value("#{beanInject.another}")
    private String fromAnotherBean; // 注入其他Bean属性:注入beanInject对象的属性another,类具体定义见下面

    @Value("classpath:com/hry/spring/configinject/config.txt")
    private Resource resourceFile; // 注入文件资源

    @Value("http://www.baidu.com")
    private Resource testUrl; // 注入URL资源

application.properties:
    home.province=ZheJiang
    home.city=WenLing
    home.desc=dev\: I'm ? living in ${home.province} ${home.city}.
    ##Spring Boot 是通过 application.properties 文件中,设置 spring.profiles.active 属性,
    ##比如 ,配置了 dev ,则加载的是 application-dev.properties 设置prod 则加载的是 plication-prod.properties

    #spring.profiles.active=dev

HomeProperties .java

import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

/**
 * @author 
 *通过 @ConfigurationProperties(prefix = "home”) 注解,
 *将配置文件中以 home 前缀的属性值自动绑定到对应的字段中。同是用 @Component 作为 Bean 注入到 Spring 容器中。
 *
 *如果不是用 application.properties 文件,而是用 application.yml 的文件,对应配置如下:
 *## 家乡属性
  home:
  province: 浙江省
  city: 温岭松门
  desc: 我家住在${home.province}的${home.city}
      键值对冒号后面,必须空一格。
 *注意这里,就有一个坑了:
application.properties 配置中文值的时候,读取出来的属性值会出现乱码问题。但是 application.yml 不会出现乱码问题。
原因是,Spring Boot 是以 iso-8859 的编码方式读取 application.properties 配置文件。
 *@PropertySource("classpath:uploaddefine.properties"):定义了要读取的properties文件的位置
 */
@Component
@ConfigurationProperties(prefix = "home")
public class HomeProperties {
private String province;//省份
private String city;//城市
private String desc;//描述
public String getProvince() {
return province;
}
public void setProvince(String province) {
this.province = province;
}
public String getCity() {
return city;
}
public void setCity(String city) {
this.city = city;
}
public String getDesc() {
return desc;
}
public void setDesc(String desc) {
this.desc = desc;
}
@Override
public String toString() {
return "HomeProperties{" +
                "province='" + this.province + '\'' +
                ", city='" + this.city + '\'' +
                ", desc='" + this.desc + '\'' +
                '}';
}
}

HelloController .java
/**
 * Spring Boot HelloWorld案例
 * @RestController 的意思就是controller里面的方法都以json格式输出
 *
 */

@RestController

@RequestMapping("hello")

public class HelloController {

/*自动装配的语法要求:不允许在局部进行自动装配(即:只能写在method外class里)。
自动装配的动作都是在容器启动的时候,容器在读取配置文件和加载类的时候就需要进行装配了,如果将它放在方法内,它就成了局部的信息,
对外是不可见的,无法进行装配,必须是成员变量,这样在加载的时候容器才检测到需要装配的变量。*/
@Autowired//这个要用在方法外面,否则会报错
private HomeProperties homeProperties;

@RequestMapping("/nihaoa")
public String SayHello(){
return homeProperties.toString();
}

}

访问的地址为:http://localhost:8080/hello/nihaoa

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值