博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SpringBoot 项目搭建 打包 运行
阅读量:6095 次
发布时间:2019-06-20

本文共 3459 字,大约阅读时间需要 11 分钟。

hot3.png

    搭建一个非常简单的springboot项目,只有图片访问的功能。springboot项目其实很灵活,可以打成jar包运行,静态资源的路径也可以随意配置,也可以打成war包配合tomcat运行。

    1. 新建maven项目,初始架构为:

    2. 引进springboot,补充pom文件:

4.0.0
com.yue
springboot-picture
1.0-SNAPSHOT
org.springframework.boot
spring-boot-starter-parent
1.5.10.RELEASE
org.springframework.boot
spring-boot-starter-web

    3. resources下新建文件application.properties

server.port=8080server.tomcat.basedir=./tomcatTemp

设置tomcat临时目录的原因是,我不想让太多垃圾堆积在c盘。tomcat启动时,会默认在C盘的一个位置生成临时目录,存储大量的临时文件。消耗系统物理内存,我希望把这些消耗掌握在更明显的可控范围内。

    4. java包下新建com.yue,yue包下新建Application.class,作为springboot的启动类

@SpringBootApplication(scanBasePackages={"com.yue"})public class Application {    public static void main(String[] args) {        SpringApplication.run(Application.class);    }}
scanBasePackages={"com.yue"}  这一句是配置启动类的所在包路径

    此时,最基本的springboot框架已经搭建,运行Application类就可以启动了

b393976cdc7d8b2a8ac300b563e430d3ecd.jpg

控制台输出

2018-06-21 16:12:40.729  INFO 11780 --- [           main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(s): 8080 (http)2018-06-21 16:12:40.738  INFO 11780 --- [           main] com.yue.Application                      : Started Application in 3.78 seconds (JVM running for 4.346)

说明启动成功。

    5. 增加图片访问功能,这个图片访问不是把图片放到静态资源路径下,然后用 http://ip:port/图片名 的方式访问,而是直接在前端请求过来时,将本地的图片转化成二进制流写入response,响应给前端页面。

    新建相关类

1e463830aae0b13b6c61e453b5e8e6d805f.jpg

@Servicepublic class ImageService {    private final String IMAGE_PATH="F:/150094541085.jpg";    public byte[] getImage() throws IOException {        FileInputStream fileInputStream = null;        byte[] data =null;        try {            fileInputStream = new FileInputStream(IMAGE_PATH);            //适合小容量文件            data = new byte[fileInputStream.available()];            fileInputStream.read(data);        } catch (FileNotFoundException e) {            e.printStackTrace();        }        return data;    }}
@Controllerpublic class ImageController {    @Autowired    private ImageService imageService;    @GetMapping("/getImage")    public void getImage(HttpServletResponse response) throws IOException {        response.setHeader("Pragma", "no-cache");        response.setContentType("image/jpeg");        byte[] image = imageService.getImage();        response.getOutputStream().write(image);        response.flushBuffer();    }}

此时,启动项目,输入 http://localhost:8081/getImage 便能访问本地图片了

 

    6. 但是这样子还没办法打包运行,需要继续修改pom文件,添加以下代码

org.apache.maven.plugins
maven-compiler-plugin
3.6.1
1.8
1.8
org.springframework.boot
spring-boot-maven-plugin
1.5.10.RELEASE
repackage

这样子,用maven命令 clean  、package 打包就行了。

 

运行jar包的命令  

java -Dfile.encoding=UTF-8 -jar ./xxx.jar

 

转载于:https://my.oschina.net/u/3490860/blog/1833661

你可能感兴趣的文章
下一步工作分配
查看>>
Response. AppendHeader使用大全及文件下载.net函数使用注意点(转载)
查看>>
Wait Functions
查看>>
代码描述10313 - Pay the Price
查看>>
jQuery最佳实践
查看>>
centos64i386下apache 403没有权限访问。
查看>>
vb sendmessage 详解1
查看>>
jquery用法大全
查看>>
Groonga 3.0.8 发布,全文搜索引擎
查看>>
PC-BSD 9.2 发布,基于 FreeBSD 9.2
查看>>
网卡驱动程序之框架(一)
查看>>
css斜线
查看>>
Windows phone 8 学习笔记(3) 通信
查看>>
重新想象 Windows 8 Store Apps (18) - 绘图: Shape, Path, Stroke, Brush
查看>>
Revit API找到风管穿过的墙(当前文档和链接文档)
查看>>
Scroll Depth – 衡量页面滚动的 Google 分析插件
查看>>
Windows 8.1 应用再出发 - 视图状态的更新
查看>>
自己制作交叉编译工具链
查看>>
Qt Style Sheet实践(四):行文本编辑框QLineEdit及自动补全
查看>>
[物理学与PDEs]第3章习题1 只有一个非零分量的磁场
查看>>