Spring Boot 项目旨在简化创建产品级的 Spring 应用和服务。你可通过它来选择不同的 Spring 平台。可创建独立的 Java 应用和 Web 应用,对于创建的Web应用甚至不需要启动Tomcat等容器,便可以通过浏览器来访问。通过Spring Boot还对Hibernate进行了封装,让开发者对于每一个表可以直接完成CURD操作而不需要额外的代码,这些特性让Spring Boot受到后台开发人员的喜欢,通过Spring Boot非常容易编写接口文档。
下面我们编写一个Spring Boot的HelloWorld(不访问数据库,仅仅对浏览器的服务输出)
1.创建一个Maven项目,导入Spring boot的依赖
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.3.5.RELEASE</version>
<relativePath/>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.21</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
2.创建一个核心类,用来启动整个项目
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
在所有的步骤完成后运行这个main方法即可。
3.创建访问的Controller
@RestController
public class HelloController {
@RequestMapping("/")
public String home(){
return "Hello World";
}
}
Controller类必须使用@RestController注解而不能使用@Controller
现在我们启动步骤2中的main方法,启动成功后Spring Boot会自动在8080端口上部署我们的项目(并没有启动Tomcat,与Tomcat毫无关系)。根据我们在Controller中定义的URL来访问(即访问127.0.0.1:8080)此时会看到Hello World被打印出来了,即成功访问到了Controller。
通过Spring Boot封装的Hibernate来访问数据库实现CURD
1.创建数据库配置文件
在 src.main.resources下创建application.properties。在该配置文件中写入数据库的相关信息(创建DataSource):
spring.datasource.url=jdbc:mysql://localhost:3306/springTemp?characterEncoding=UTF-8
spring.datasource.username=root
spring.datasource.password=toor
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
2.创建一个实体类(对应数据库)
@Entity
@Table(name="account")
public class Account {
@Id
@GeneratedValue(generator = "IDGenerator")
@GenericGenerator(name = "IDGenerator", strategy = "increment")
private int id;
private String name;
private String now_money;
public Account(){
}
public Account(String name,String now_money){
this.name =name;
this.now_money = now_money;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getNow_money() {
return now_money;
}
public void setNow_money(String now_money) {
this.now_money = now_money;
}
}
3.创建该实体类对应的Service
前面我们说过Spring Boot封装了Hibernate并提供了一些简单的实现,那么我们创建Service类将变得及其简单。
@Service
public interface AccountCurd extends JpaRepository<Account,Integer>{
//泛型分别是对应的实体类,该表对应的主键的类型
}
即仅需创建一个接口来继承Spring Boot提供的接口即可,现在把该即可注入到Controller类中即可完成CURD操作:
4.完成CURD的Controller
@RestController
public class ListController {
@Autowired
AccountCurd accountCurd;
@RequestMapping("/select")
public List<Account> selectAll() {
return accountCurd.findAll();
}
@RequestMapping("/add")
public String addAccount(String name,String now_money){
Account account = new Account(name,now_money);
accountCurd.save(account);
return "success";
}
@RequestMapping("/delete")
public String deleteAccount(@RequestParam("id") int id){
accountCurd.delete(id);
return "success";
}
@RequestMapping("/")
public String home(){
return "Hello World";
}
}
与最开始访问Hello World一样,通过浏览器访问127.0.0.1:8080/select即会看到数据库中account表中的信息。访问127.0.0.1:8080/delete?id=1即会删除表中id为1的行。访问127.0.0.1:8080/add?(插入信息)即会在数据库中插入相应的数据。