Spring Bootファースト入門
1概要
Spring BootはSprigMVCのアップグレードであり、Spring Cloudの基礎部分を勉強します.
Spring Bootの特徴は以下の通りです.は繁雑を簡略化し、構成を簡略化する.(構成が簡単です.謝sql文を使わないでください.配置ファイルとエンティティ類を利用して自動的にデータテーブルを作成できます.) が注目されているのは、次世代の枠組みである. マイクロサービスの入門レベルのマイクロフレーム. Spring Boot知識の基礎を学ぶ: maven Spring注釈 Restful API 2プロジェクトの属性設定
2.1共通属性の配置
プロジェクト属性の設定は、appication.propertiesまたはappication.yml(推奨)で行います.
appication.propertiesで構成する:
content:「high:$high」、「{age}」
2.4 Controllerの使用
1@Controllerはhttp要求を処理するために用いられ、テンプレートに協力して を使用する.@Rest Controller:Spring 4の後に新たに加えたコンポーネントは、もともとJsonに戻るには@ResonseBody+@Controller が必要です.@Request Mapping:構成URLマッピング 2@PahttVarable:urlのデータを取得する @Request Param:要求パラメータの値を取得する @GetMapping:コンビネーションコメント
3.1 Spring-Data-Jpa
Spring BootオペレーティングデータベースはSpring-Data_を使用する必要があります.J pa
Spring-Data-Jpa(Java Persistence API)は一連のオブジェクトの持続化の基準を定義していますが、現在この規格を実現している製品はハイベルナー、TopLinkなどがあります.
3.2操作データベース
1テーブルの自動作成
1)Retsfulインターフェースを設計する
2)設定:pom.xmlファイル
2自動クエリー
1) 設定ファイルのaplication.ymlにおけるデータベースの属性設定を変更します.ddl-aut:udateは、データベース操作を実行する時にデータベースのデータを保持できます.
2) インターフェースを作成して、プロキシとしてデータベースに自動的にアクセスできます.
4事務管理
いくつかの操作を一つの原子的行為として結びつけるか、または同時に成功するか、どちらも失敗する.
サービスGirl Service.javaを作成し、操作方法を事務管理として注釈することに注意する.
Spring BootはSprigMVCのアップグレードであり、Spring Cloudの基礎部分を勉強します.
Spring Bootの特徴は以下の通りです.
2.1共通属性の配置
プロジェクト属性の設定は、appication.propertiesまたはappication.yml(推奨)で行います.
appication.propertiesで構成する:
server.port=8081 server.context-path server.context-path=/sell
appication.ymlで設定します.server: port: 8082
context-path: /sell
: ;
application.yml , 。
2.2カスタム属性server: port: 8082 context-path: /sell high: 1.75 age: 25
, , , ; , 。
:
@RestController
public class HelloController {
@Value("${high}")
private String high;
@Value("${age}")
private Integer age;
@RequestMapping(value = "hello", method = RequestMethod.GET)
public String say() {
return "Hello Spring Boot";
}
@RequestMapping(value = "info", method = RequestMethod.GET)
public String say2() {
String str = "???" + high + "
;???" + age;
return str;
}
}
:
content:「high:$high」、「{age}」
, :
@Component // Bean
@ConfigurationProperties(prefix = "sell")
public class SellProperties
{
@Value("${high}")
private Stringhigh;
@Value("${age}")
private Integerage;
@Value("${content}")
private Stringcontent;
public SellProperties(){
}
//……
}
2.3多環境構成 , , application.yml , :
:
application.yml application-dev.yml
application.yml
spring:
profiles:
active: dev
プロファイルの設定-dev.yml2.4 Controllerの使用
1
/**
* @RestController=@Controller+@ResponseBody
*/
//@Controller
//@ResponseBody()
@RestController
//@RequestMapping("/temp") // Url :http://127.0.0.1:8081/sell/temp/hello
public class HelloController {
@Value("${high}")
private Stringhigh;
@Value("${age}")
private Integerage;
@Value("${content}")
private Stringcontent;
@Autowired
private SellPropertiessellProperties;
@RequestMapping(value="hello",method = RequestMethod.GET )
public Stringsay(){
return "HelloSpring Boot";
}
/**
* url , url
* @return
*/
@RequestMapping(value={"info","private"},method = RequestMethod.GET )
public Stringsay2(){
String str =" :"+high+"
; :"+age;
// return str;
return content;
}
@RequestMapping(value="assem",method = RequestMethod.GET )
public Stringsay3(){
return sellProperties.getContent();
}
@RequestMapping(value="template",method = RequestMethod.GET )
public Stringsay4(){
return "index";
}
/*
@PathVariable(value ="id" ,required = false,defalutValue="0"
,required=false , 0
*/
@RequestMapping(value="/pathV/{id}",method = RequestMethod.GET )
// @GetMapping(value)
public Stringsay4(@PathVariable(value = "id",required = false,defalutValue="0") Integer id){
return "id"+id;
}
}
3データベース操作3.1 Spring-Data-Jpa
Spring BootオペレーティングデータベースはSpring-Data_を使用する必要があります.J pa
Spring-Data-Jpa(Java Persistence API)は一連のオブジェクトの持続化の基準を定義していますが、現在この規格を実現している製品はハイベルナー、TopLinkなどがあります.
3.2操作データベース
1テーブルの自動作成
1)Retsfulインターフェースを設計する
2)設定:pom.xmlファイル
org.springframework.boot
spring-boot-starter-data-jpa
mysql
mysql-connector-java
appication.ymlファイルにリンクデータベースの属性を設定します.必ずフォーマットをそろえてください.でないとエラーが発生します.# , ,
spring:
profiles:
active: dev
datasource:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/girl
username: root
password: root
jpa:
hibernate:
ddl-auto: create
show-sql: true
#create: , , ,
#ddl-auto: update , ,
#ddl-auto: create-drop , 。
3)データベースガールを作成し、テーブルを作成する必要はなく、対応するクラスを作成する必要があります.import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
@Entity
public class Girl {
@Id
@GeneratedValue
@GeneratedValue
private Integerid;
private StringcupSize;
private Integerage;
public Girl(){
}
//……get and set
}
4)その後、プロジェクト「run’プロジェクト名」を実行すると、自動的にエンティティクラスのガールに対応するテーブルが作成されます.2自動クエリー
1) 設定ファイルのaplication.ymlにおけるデータベースの属性設定を変更します.ddl-aut:udateは、データベース操作を実行する時にデータベースのデータを保持できます.
2) インターフェースを作成して、プロキシとしてデータベースに自動的にアクセスできます.
import org.springframework.data.jpa.repository.JpaRepository;
import java.util.List;
/**
* , Girl, id Integer
*/
public interface GirlRepository extends JpaRepository{
// , DDL,
public List findByAge(Integer age);
}
3) GirlController, GirlRepository:
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@RestController
public class GirlController {
@Autowired
private GirlRepositorygirlRepository;
@GetMapping(value="/girls")
public ListgirlList(){
return girlRepository.findAll();//
}
/**
*
* @param cupSize
* @param age
* @return
*/
//@PostMapping(value="/postGirls")
//@RequestMapping(value="/getGirl_1",params ={"cupSize","age"},method=RequestMethod.GET)
@RequestMapping(value="/getGirl_1/{cupSize}/{age}",method=RequestMethod.GET)
public GirlgirlAdd(@PathVariable("cupSize") String cupSize,
@PathVariable("age") Integer age)
{
Girl girl=new Girl();
girl.setAge(age);
girl.setCupSize(cupSize);
return girlRepository .save(girl);//save
}
@PostMapping(value="/postGirl_2")
public GirlgirlAdd2(@RequestParam("cupSize") String cupSize,
@RequestParam("age") Integer age)
{
Girl girl=new Girl();
girl.setAge(age);
girl.setCupSize(cupSize);
return girlRepository .save(girl);//save
}
//
@GetMapping(value="/girls/find/{id}")
public GirlgirlFindOne(@PathVariable Integer id)
{
return girlRepository.findOne(id);
}
//
@PutMapping(value="/girls/update/{id}")
public GirlgirlUpdate(@PathVariable Integer id,
@RequestParam("cupSize") String cupSize,
@RequestParam("age") Integer age)
{
Girl girl=new Girl();
girl.setId(id);
girl.setAge(age);
girl.setCupSize(cupSize);
return girlRepository.save(girl);
}
//
@GetMapping(value="/girls/delete/{id}")
public void girlDeleteOne(@PathVariable Integer id)
{
girlRepository.delete(id); //
}
// , , 。
@GetMapping(value="/girls/age/{age}")
public ListgirlListByAge(@PathVariable("age") Integer age)
{
return girlRepository.findByAge(age);
}
}
コントローラでは、インターフェースを起動してデータベースに対する操作方法を実現しても良いし、インターフェースで照会方法を修正してからコントローラでこの方法を呼び出すこともできます.つまり、SQL文を書く必要はありません.4事務管理
いくつかの操作を一つの原子的行為として結びつけるか、または同時に成功するか、どちらも失敗する.
サービスGirl Service.javaを作成し、操作方法を事務管理として注釈することに注意する.
@Service
public class GirlService {
@Autowired
private GirlRepository girlRepository;
@Transactional // -- , ,
public void insertTwo()
{
Girl girlA=new Girl();
girlA.setAge(23);
girlA.setCupSize("C");
girlRepository.save(girlA);
Girl girlB=new Girl();
girlB.setAge(20);
girlB.setCupSize("D");
girlRepository.save(girlB);
}
}