springboot–初见
springboot入门案例
创建项目流程:
我这里创建项目出现一点问题,maven项目无法导入,pom文件的标签出现异常,右侧导航页面没有maven项目的标签,解决方法如下:
写springboot项目代码的注意事项:
springboot项目代码必须放到Application类所在的统计目录或者以下的目录中。Application类是用于开启spring的自动配置。
写完以下的代码,可以直接点击Application类中的main方法运行,会直接运行Tomcat服务器,因为springboot集成了Tomcat服务器的依赖,同时还继承了spring和springmvc
由于没有在核心配置文件(application.properties)中配置端口号和上下文根地址,运行main方法后,可以在浏览器中输入http://localhost:8080/http://localhost:8080/say
进行访问,页面会输出json格式的“say: Hello springboot”信息。
核心配置文件(application.properties)的配置案例:
#设置内嵌Tomcat端口号
server.port=8080
#设置上下文根
server.servlet.context-path=/springboot
核心配置文件的后缀除了properties,还有yml和yaml,但是名字都是必须为application。
yml格式核心配置文件代码示例:
server:
port: 8080
servlet:
context-path: /springboot
port:和8080之间有空格,制表符作为空格,空格不能删除。yaml的格式和yml格式相同。当yml格式和properties格式的核心配置文件都存在是,以properties格式的文件为主。
多环境下的配置文件:
工作的环境有很多:开发环境,测试环境,准生产环境,生产环境
我们可以为不同的环境配置不同的核心配置文件,配置文件的名字格式是固定的。application-xxx.properties。还需要一个主核心配置文件,这个文件是选择哪个配置文件作为我们的工作环境文件。注意主配置文件不要有多余的空格。
1.核心配置文件总览:
2.取开发环境application-dev.properties配置文件代码作为示例,其他的环境的配置文件时类似的:
##开发环境配置文件
server.port=8080
server.servlet.context-path=/dev
3.主核心配置文件application.properties代码示例:
#springboot主核心配置文件
#激活使用的配置文件
spring.profiles.active=dev
yaml和yml后缀的核心配置文件的用法和properties的用法时相同的,这里就不多论述。
主核心配置文件设置自定义参数
在主核心配置文件中可以自定一些参数,然后在类中进行获取。
1.主配置文件的代码示例:
server.port=8080
server.servlet.context-path=/
school.name=GDOU
website=http://www.baidu.com
2.在Controller类中获取自定的参数,使用value注解
@Controller
public class IndexController {
//从主核心配置文件中取出school.name的值赋给属性schoolName
@Value("${school.name}")
private String schoolName;
//从主核心配置文件中取出website的值赋给属性schoolName
@Value("${website}")
private String website;
@RequestMapping(value = "/say")
@ResponseBody
public String say(){
return "say: Hello springboot" + schoolName + ": " + website;
}
}
将主配置文件的自定义参数映射到对象中
需要创建一个对象,来接收数据,同时还要使用@ConfigurationProperties注解,使用了这个注解,自定义属性必须有前缀,而且前缀必须统一。下面是代码示例:
1.在主配置文件创建自定义参数(application.properties):
server.port=8080
server.servlet.context-path=/
school.name=GDOU
school.website=http://www.baidu.com
2.创建一个对象用于接收参数(School),使用了@ConfigurationProperties注解:
package com.config;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
//将此类交给spring容器进行处理
@Component
/*@ConfigurationProperties注解是将主配置文件中的自定义属性注入到对象中
* *@ConfigurationProperties是配置属性注解
* 里面有一个prefix属性,必须要有值,这个值是主配置文件中的自定义属性的前缀
* school.name的前缀是school
* */
@ConfigurationProperties(prefix = "school")
public class School {
//属性的名字,必须和自定义属性的后缀相同
//shool.name的值赋给name
private String name;
//school.website赋给website
private String website;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getWebsite() {
return website;
}
public void setWebsite(String websit) {
this.website = websit;
}
@Override
public String toString() {
return "School{" +
"name='" + name + '\'' +
", website='" + website + '\'' +
'}';
}
}
3.创建一个Controller类,并使用@Resource注解进行自动注入装配:
@Controller
public class IndexController {
//自动装配对象
@Resource
private School school;
@RequestMapping(value = "/say")
@ResponseBody
public String say(){
return "say: Hello springboot" + school.getName() + ": " + school.getWebsite();
}
}