继承org.springframework.boot.web.servlet.support.SpringBootServletInitializer类,覆盖configure()方法,用于打包。
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.support.SpringBootServletInitializer;
@SpringBootApplication
public class App extends SpringBootServletInitializer {
public static void main(String[] args) {
SpringApplication.run(App.class, args);
}
// 用于构建war文件并进行部署
@Override
protected SpringApplicationBuilder configure(
SpringApplicationBuilder builder) {
return builder.sources(this.getClass());
}
}
1)这个其实不是必须的,就是不排除这个,打包后jar包里面多了tomcat插件相关的jar,看起来不严谨。
2)增加 javax.servlet-api。 如果没有排除 tomcat依赖的话,可以不加这个,但如果排除了tomcat插件依赖就必须加这个了。
3)还有说明一下,如果测试阶段用 mvn clean spring-boot:run 启动,是万万不能排除 tomcat依赖的。所以,我是在开发阶段注释掉这个依赖,在部署打包前,再让这个依赖生效。
MySpringBoot03
spring-boot-starter-parent
spring-boot-starter-web
spring-boot-starter-tomcat
javax.servlet-api
spring-boot-starter-data-jpa
mysql-connector-java
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import com.myspringboot.dao.UserDao;
import com.myspringboot.pojo.Users;
@Controller
@RequestMapping("/users")
public class UserController {
@Autowired
private UserDao userDao; //继承JpaRepository
@RequestMapping("/get")
@ResponseBody
public Object get(Integer id) {
System.out.println("get success");
return userDao.findOne(id);
}
@RequestMapping("/add")
@ResponseBody
public Object add(String name,Integer age) {
Users users = new Users();
users.setAge(age);
users.setName(name);
userDao.save(users);
System.out.println("add success");
return "ok";
}
@RequestMapping("/addByJpa")
@ResponseBody
public Object addByJpa() {
Users users = new Users();
users.setAge(18);
users.setName("lisi");
userDao.save(users);
System.out.println("add success");
return "ok";
}
@RequestMapping("/addByJpa2")
@ResponseBody
public Object addByJpa(String name,Integer age) {
Users users = new Users();
users.setAge(age);
users.setName(name);
userDao.save(users);
System.out.println("add success2");
return "ok";
}
}
注意:一定要继承JpaRepository
import org.springframework.data.jpa.repository.JpaRepository;
import com.myspringboot.pojo.Users;
public interface UserDao extends JpaRepository
}
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
@Entity(name ="users")
public class Users {
@Id //少了这个注释会导致启动springboot报错
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column(name="id")
private Integer id;
@Column(name="name")
private String name;
@Column(name="age")
private Integer age;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
}
spring.datasource.driverClassName=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/ssm
spring.datasource.username=root
spring.datasource.password=123456789
在项目根目录执行maven 命令: mvn clean package
很多朋友不习惯添加 clean ,我觉得很奇怪,注意,一定要加上这个。
或者右键项目名称,点击Run as > Maven build,弹出以下窗口:
在Goals输入 clean package,然后点击Run
部署到Tomcat
在 target 文件夹下找到war,或文件夹,直接拷贝到 tomcat下的webapps文件夹下即可。



