记录初学Spring boot(使用@Value、启动类Application.java的位置、更新maven、导出成war文件、热部署、Restful风格网址传参)

从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所在的文件夹位于同一个文件夹内。

三、每次在pom.xml文件里添加新的dependency后,必须update maven。如下图所示。更新时必须联网,需要下载相关的依赖包。

记录初学Spring boot(使用@Value、启动类Application.java的位置、更新maven、导出成war文件、热部署、Restful风格网址传参)

记录初学Spring boot(使用@Value、启动类Application.java的位置、更新maven、导出成war文件、热部署、Restful风格网址传参)

四、导出项目成war文件:

  1、修改pom.xml的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;
    }
}  

记录初学Spring boot(使用@Value、启动类Application.java的位置、更新maven、导出成war文件、热部署、Restful风格网址传参)

上一篇:flutter 生成aar文件,嵌入原生android项目


下一篇:Asp.net Repeater控件