目录
Spring boot 初始化和运行方式
微服务构架–>SpringCloud -->SpringBoot
环境:
jdk:1.8.0_181
maven:3.3.9
工具:IDEA
构建项目:


配置Maven:

settings.xml
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>*</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
</mirror>
三种启动项目方式:
1.项目右键–》Run:GirlApplication

2. 命令行启动
mvn spring-boot:run
3.jar 包启动
编译项目 在target目录中生成 girl-0.0.1-SNAPSHOT.jar文件
mvn install
java -jar girl-0.0.1-SNAPSHOT.jar
4.war包启动
pom.xml 修改配置
<!--可以打包为jar/war-->
<packaging>war</packaging>
编译项目 在target目录中生成 girl-0.0.1-SNAPSHOT.war文件
mvn install
把 war包放入tomcatwebapp文件下启动tomcat即可。
SpringBoot 项目属性配置
application.yml
spring:
profiles:
active: dev
datasource:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/dbgirl
username: root
password: zhangtao
jpa:
hibernate:
ddl-auto: update
show-sql: true
application-dev.yml
server:
port: 8080
# servlet:
# context-path: /girl
content: "cuppSize: ${cupSize}"
girl:
cupSize: B
age: 18
application-prod.yml
server:
port: 8081
servlet:
context-path: /girl
content: "cuppSize: ${cupSize}"
girl:
cupSize: F
age: 18
jar 启动方式
java -jar girl-0.0.1-SNAPSHOT.jar --spring.prospring.profiles.active=prod
GirlModel.java
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
//@Component 注入 @ConfigurationProperties(prefix = "girl") yml girl
@Component
@ConfigurationProperties(prefix = "girl")
public class GirlModel {
private String cupSize;
private Integer age;
public String getCupSize() {
return cupSize;
}
public void setCupSize(String cupSize) {
this.cupSize = cupSize;
}
}
HelloController.java
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
/*
@RestController =@Controller +@ResponseBody
@Controller 需要模版
*/
@RestController
@RequestMapping(value = {"/hello","/hi"},method = RequestMethod.GET)
public class HelloController {
// @Value("${cupSize}")
// private String cupSize;
//
// @Value("${content}")
// private String content;
@Autowired
private GirlModel girlmodel;
// @PathVariable 获取url中参数
// @RequestParam 获取请求中参数 ?id=1&age=2
// @RequestMapping(value = {"/hello","/hi"},method = RequestMethod.GET)
//@RequestMapping(value = "/say",method = RequestMethod.GET)
@GetMapping(value = "/say")
public String say(@RequestParam(value = "id",required = false,defaultValue = "0") Integer id) {
// return girlmodel.getCupSize();
// return "index";
return "id:"+id;
}
}
pom.xml 引入的模块
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
模版的引入

数据库的操作
设计接口
| 请求类型 | 请求路径 | 功能 |
|---|---|---|
| GET | /girls | 获取女生列表 |
| POST | /girls | 创建一个女生 |
| GET | /girls/id | 通过id查询一个女生 |
| PUT | /girls/id | 通过id更新一个女生 |
| DELETE | /girls/id | 通过id删除一个女生 |
pom.xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
spring:
profiles:
active: dev
datasource:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/dbgirl
username: root
password: zhangtao
jpa:
hibernate:
ddl-auto: update
show-sql: true
新建数据库girldb
表索引为InnoDB 其他不支持事物管理
Girl.java
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
@Entity
@JsonIgnoreProperties(value = { "hibernateLazyInitializer" })
public class Girl {
@Id
@GeneratedValue
private Integer id;
private String cupSize;
private Integer age;
public Girl() {
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getCupSize() {
return cupSize;
}
public void setCupSize(String cupSize) {
this.cupSize = cupSize;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
}
GirlRepository.java
import org.springframework.data.jpa.repository.JpaRepository;
import java.util.List;
public interface GirlRepository extends JpaRepository<Girl,Integer> {
//通过年龄来查询
List<Girl> findByAge(Integer age);
}
GirlController.java
import org.hibernate.criterion.Example;
import org.omg.CORBA.PRIVATE_MEMBER;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.EnableTransactionManagement;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@RestController
public class GirlController {
@Autowired
private GirlRepository girlRepository;
@Autowired
private GirlService girlService;
/**
* 查询所有女生列表
* @return
*/
@GetMapping(value = "/girls")
public List<Girl> listGirl(){
return girlRepository.findAll();
}
/**
* 添加一个女生
* @param cupSize
* @param age
* @return
*/
@PostMapping(value = "/girls")
public Girl AddGirl(@RequestParam("cupSize") String cupSize,
@RequestParam("age") Integer age){
Girl girl=new Girl();
girl.setCupSize(cupSize);
girl.setAge(age);
return girlRepository.save(girl);
}
@GetMapping(value = "/girls/{id}")
public Girl girlFindOne(@PathVariable("id") Integer id){
return girlRepository.getOne(id);
}
@PutMapping(value = "/girls/{id}")
public Girl girlUpdate(@PathVariable("id") Integer id,
@RequestParam("cupSize") String cupSize,
@RequestParam("age") Integer age){
Girl girl=new Girl();
girl.setId(id);
girl.setCupSize(cupSize);
girl.setAge(age);
return girlRepository.save(girl) ;
}
@DeleteMapping(value = "/girls/{id}")
public void girlDelete(@PathVariable("id") Integer id){
girlRepository.deleteById(id);;
}
@GetMapping(value = "/girls/age/{age}")
public List<Girl> girlListByAge(@PathVariable("age") Integer age){
return girlRepository.findByAge(age);
}
@PostMapping(value = "/girls/two")
public void girlTwo(){
girlService.insertTwo();
}
}
数据库事物
GirlService.java
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Isolation;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
@Transactional
@Service
public class GirlService {
@Autowired
private GirlRepository girlRepository;
public void insertTwo(){
Girl girlA=new Girl();
girlA.setCupSize("A");
girlA.setAge(15);
girlRepository.save(girlA);
Girl girlB=new Girl();
girlB.setCupSize("Bdd");
girlB.setAge(16);
girlRepository.save(girlB);
}
}
本文介绍了Spring Boot的初始化和运行方式,包括IDEA中项目右键运行、命令行启动和jar/war包启动。同时,详细讲解了Spring Boot的项目属性配置,如application.yml和不同环境的配置文件。此外,还涉及了数据库操作和事务管理,包括GirlModel、HelloController、GirlRepository和GirlService的使用。
1383

被折叠的 条评论
为什么被折叠?



