1. 创建一个Spring Boot app 非常简单
Creating a Spring Application in Intelij is darn Simple
2. 组件及用法
2.1 Service
2.2 Dao
h2 database的web console中,用户名是user, 密码自己在console中搜索。使用h2 database的好处是memory db,速度快,不用装mysql,如果需要持久化的话,dburl制定一个本地文件就可以了
2.3 Entity
2.4 Controller
3. 一些配置
Spring Boot修改内置Tomcat端口号:
EmbeddedServletContainerCustomizer
或者在src/main/resources/application.yml文件中添加
server
port: 8081
4. 部署到linux机器上
Deploying in Java Archive (JAR) as a standalone application(打成一个jar包)
在pom.xml中添加这么一段<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build>
随后mvn package ,在target文件夹中就能找到一个xxx.jar文件,
执行java -jar.jar 就能运行起来了。 Deploying as Web Application Archive (WAR) into a servlet container(部署到tomcat中)
部署到docker中。。。。
- nginx代理。。。
- nginx + 容器
Tomcat教程
Create a Maven Project with Servlet in IntelliJ IDEA 需要使用intelij idea ultimate version,过程中可能需要联网,会比较慢。
Tomcat可以host static file,做法是在webapp文件夹下创建一个MyApp(名字其实随意)文件夹,在这个文件夹里新建一个index.html(文件也随意),接下来访问localhost:8080/MyApp/index.html 就能看到内容了
补充一些tomcat和servlet的知识
tomcat是web container,servlet是处理业务逻辑的。
servlet继承自HttpServlet,里面有doGet和doPost方法。
servlet和请求的url的对应关系写在web.xml中。
servlet不是线程安全的,解决方式(ThreadLocal)
下面是从一片关于如何使用命令行生成并运行jar的文章中摘抄的
|____src
| |____main
| | |____java
| | | |____com
| | | | |____remkohde
| | |____resources
| |____test
|____target
Above you created the recommended directory structure for a Java application. Java source files are saved in the ‘./src/main/java’ folder, the folder ‘./src/main/resources’ is added to the class-path to include resources like properties files to your Java application, test files are saved in ‘./src/test’, compiled class files are saved to ‘./target/classes’, and jar archives are saved to the ‘./target’ folder.
如上就是一般推荐的java application的目录结构。
./src/main/java’ folder放的是java代码,
‘./src/main/resources’是用来存放属性之类的文件的(被添加到classpath),
test文件存放在‘./src/test’文件夹中,生成的class文件放在‘./target/classes’文件夹中,
‘./target’文件夹中放的是jar文件
论如何正确地关闭springboot应用
start.sh
#!/bin/bash
java -jar myapp.jar & echo $! > ./pid.file &
stop.sh
#!/bin/bash
kill $(cat ./pid.file)
start_silent.sh
#!/bin/bash
nohup ./start.sh > foo.out 2> foo.err < /dev/null &
非嵌入式产品的Web应用,应使用预编译语句PreparedStatement代替直接的语句执行Statement,以防止SQL注入。
Spring boot的autoWired注解
=================================================================
在windows里面查看内网ip,从控制面板进去看是不准的,DHCP有效期过了自动换掉,得自己敲ipconfig,这样才是最及时的。
以Okio为例,maven的搜索网站是
https://search.maven.org/remote_content?g=com.squareup.okio&a=okio&v=LATEST
,实际下发的域名是https://repo1.maven.org/maven2/com/squareup/okio/okio/1.14.0/okio-1.14.0.jar
。用wget看,是302重定向了。accessing-data-mysql
在application.properties文件中可以写的一些配置
在ubuntu下使用nginx部署Spring boot application
example app
SpringBootIn50
A simple Spring boot application that demonstrates the usage of REST API using Spring boot, Hibernate and MySQL.
servlet tutorials
tbd META-INF以及一个jar文件的目录结构
oracle文档中指出manifest文件最后一行要加上一个换行The manifest must end with a new line or carriage return. The last line will not be parsed properly if it does not end with a new line or carriage return.