Springboot的配置文件
文件类型
-
properties文件,我们以前一直使用的文件,文件内容要求如下格式:
person.name=zhangsan person.age=12 person.gender=男 person.desc=my name is ${person.name},my age is ${person.age} @Component public class Person { @Value("${person.name}") private String name; @Value("${person.age}") private int age; private String sex; @Value("${person.desc}") private String desc; public Person() { } public Person(String name, int age, String sex) { this.name = name; this.age = age; this.sex = sex; } @Override public String toString() { return "Person{" + "name='" + name + '\'' + ", age=" + age + ", sex='" + sex + '\'' + ", desc='" + desc + '\'' + '}'; } }
-
yaml文件,springboot支持的另一种配置文件形式,它的内容格式如下:
person: name: zhangsan age: 12 sex: 男 desc: my name is ${person.name},my age is ${person.age} @Component @ConfigurationProperties(prefix = "person") public class Person { private String name; private int age; private String sex; private String desc; public Person() { } public Person(String name, int age, String sex) { this.name = name; this.age = age; this.sex = sex; } @Override public String toString() { return "Person{" + "name='" + name + '\'' + ", age=" + age + ", sex='" + sex + '\'' + ", desc='" + desc + '\'' + '}'; } }
文件的优先级
在springboot中配置文件有着优先级之分,配置文件一般可以出现在不同的位置,具体参考下图:
** classpath默认为resource目录,./代表项目当前目录 **
文件内容
- 可以注入属性
- 可使用表达式
web开发
springboot在开发web项目时具备天然的优势,它开箱即用,简化了许多的配置文件,对于web项目的快速构建启动非常的便利。
步骤
- 创建一个springboot的应用,选择我们需要的模块(在idea中点击选取即可),springboot会将我们所需要的模块自动的配置好。
- 手动的在配置文件中配置部分所需的内容就可以运行项目。
- 编写业务代码,不需要在做其他的配置
整合servlet
- 编写servlet类
@WebServlet(name = "myServlet",urlPatterns = "/srv")
public class MyServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("我的servlet");
super.doGet(req, resp);
}
}
- 在启动类上添加配置
@SpringBootApplication
@ServletComponentScan
public class ConfigApplication {
public static void main(String[] args) {
SpringApplication.run(ConfigApplication.class, args);
}
@Bean
public ServletRegistrationBean<MyServlet> getServletRegistrationBean(){
ServletRegistrationBean<MyServlet> bean = new ServletRegistrationBean<>(new MyServlet());
bean.setLoadOnStartup(1);
return bean;
}
}
只需要这两步即可完成servlet整合,同样也可进行servlet相关规范的filter、listener的整合。
静态资源配置
springboot在默认情况下会再classpath下从名为/static、/resources、/public、/META-INF/resources目录中读取静态内容,因此我么可以将项目中的静态资源配置在上述几个目录中,这是springboot的底层框架实现。
对于页面等静态数据,我们只需要做好HTML页面放到对应的目录中去,当请求到达后将页面的名字以字符串的形式返回即可。