记录初学Springboot(使⽤@Value、启动类Application.java的
位。。。
适合新手的spring boot从java web转学spring boot,记录⼀下遇到的坑
⼀、⽤@Value读取Application.properties⽂件⾥的字符:
1、基本⽤法⽰例:先在Application.properties⽂件⾥写classname=net.ucanaccess.jdbc.UcanaccessDriver,在.java⽂件⾥读取
@Value("${classname}") private String classname;
  2、如果字符含有中⽂,必须将Application.properties⽂件变成UTF-8编码。如果是⼀串含有中⽂字符串的路径字符串,不可以写在Application.properties⽂件⾥,读出来仍然是乱码。
  3、如果要创建⼀个含有@Value属性的类的实例,不可以⽤new的⽅式,⽽应该⽤“@Autowired 类名实例名;”这样的⽅式。
⼆、XXXApplication.java这个⽂件必须和Controller所在的⽂件夹位于同⼀个⽂件夹内。
三、每次在l⽂件⾥添加新的dependency后,必须update maven。如下图所⽰。更新时必须联⽹,需要下载相关的依赖包。
四、导出项⽬成war⽂件:
  1、修改l的packaging为war。即添加⼀⾏:<packaging>war</packaging>
  2、在pom中添加插件,如下代码,添加后要注意更新maven:
1<build>
2<plugins>
3<plugin>
4<groupId>org.springframework.boot</groupId>
5<artifactId>spring-boot-maven-plugin</artifactId>
6</plugin>
7<plugin>
8<groupId>org.apache.maven.plugins</groupId>
9<artifactId>maven-war-plugin</artifactId>
10</plugin>
11</plugins>
12</build>
  3、启动类XXXApplication.java改成继承SpringBootServletInitializer,同时改写重写configure⽅法,如下⽰例:
@SpringBootApplication
public class MyspringApplication extends SpringBootServletInitializer {
public static void main(String[] args) {
SpringApplication.run(MyspringApplication.class, args);
}
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return builder.sources(MyspringApplication.class);
}
}
  4、打开项⽬的根⽬录,按住shift键点击⿏标右键,选择菜单“在此处打开命令窗⼝”,然后在命令窗⼝⾥输⼊mvn package命令,此时必须确保⽹络畅通。
五、实现热部署,添加⼀个依赖即可,如下:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
<scope>true</scope>
</dependency>
六、Restful风格的⽹址传参⽅式,如下例:
@Controller
public class Drawings {
@RequestMapping(value={"/drawings/{no}/{type}","/drawings/{no}"})
@ResponseBody
public String test(@PathVariable String no,@PathVariable (required = false) String type) {        if (type==null){
type="" ;
}
return no+type;
}