关于部署springboot项目,heroku官方文档很详细,虽说技术文档英语比较简单,但相信很多人多沉不下心来。我就把我部署成功的步骤写下了供有需要的人参考
heroku官方文档部署springboot文档,文档很详细一步一步来就行
先装好他的CI工具
再打开cmd,进入自己目录
使用下面的命令登陆
heroku login
创建springboot项目,也可以直接自己去springboot构建页创建
spring init --dependencies=web myapp
写一个简单的hello接口
@RequestMapping("/hi")
@ResponseBody
public Object hi(){
return "hi hhh ";
}
后面就是创建git仓库,也可使用其他git客户端创建:eclipse等IDE工具等等
进入自己的项目
cd 你的app
git init
git add .
git commit -m "first commit"
然后创建heroku app
heroku create
会产生随机的应用名 可以重命名
heroku apps:rename
然后提交代码
git push heroku master
看到没有报错信息直接访问地址的接口
到这里已告一段落了
但重要的是连接数据库
创建数据库
heroku addons:create heroku-postgresql
查看连接信息
heroku config
=== nameless-lake-8055 Config Vars
DATABASE_URL: postgres://qplhasewkhqyxp:YXDPSRus9MrU4HglCPzjhOevee@ec2-54-204-47-58.compute-1.amazonaws.com:5432/dc9qsdnghia6v1
...
连接信息的格式postgres://<username>:<password>@<host>/<dbname>
到这里我们可以直接使用工具连接数据库了,比如Navicat,然后自己创建表,虽然他官方有一个初始化数据库的例子,太麻烦,我试了也没成功。
我们通过JDBC来连接
public class DButill {
public static Connection getConnection() throws URISyntaxException, SQLException {
Connection con = null;
try {
String dbUrl = System.getenv("JDBC_DATABASE_URL");
System.out.println(dbUrl);
con = DriverManager.getConnection(dbUrl);
} catch (Exception e) {
e.printStackTrace();
System.err.println("第一种获取连接失败");
con = DButill.getConnection2();
}
System.err.println(con);
return con;
}
private static Connection getConnection2() throws URISyntaxException, SQLException {
URI dbUri = new URI(System.getenv("DATABASE_URL"));
String username = dbUri.getUserInfo().split(":")[0];
String password = dbUri.getUserInfo().split(":")[1];
String dbUrl = "jdbc:postgresql://" + dbUri.getHost() + dbUri.getPath();
return DriverManager.getConnection(dbUrl, username, password);
}
}
读取的是Heroku注入的环境变量JDBC_DATABASE_URL
在线一个接口测试读取person表的数据
@RequestMapping("/db")
@ResponseBody
public Object dataTest(){
List<String> list = new ArrayList<String>();
try {
Connection conn = DButill.getConnection();
PreparedStatement pstmt = conn.prepareStatement("select * from person");
ResultSet res = pstmt.executeQuery();
while (res.next()) {
String s = res.getString(1);
System.err.println(s);
s = res.getString(2);
System.err.println(s);
s = res.getString(3);
System.err.println(s);
list.add(s);
}
conn.close();
} catch (Exception e) {
e.printStackTrace();
}
return list;
}
提交代码到本地仓库
再push到heroku
git push heroku master
运行成功后
访问接口
至于其他连接数据库的方法通过这次的认识结合文档应该很容易了吧。
毕竟数据库地址和密码都通过变量注入给你使用了。
参考: