際際滷

際際滷Share a Scribd company logo
Spring階秘T
-Springと竃氏ってから1定磯-
mi presento
*兆念債攸∩悉(うちたてりょうすけ)
*あだ兆坤献Д鵐?フリ槻
槻來と溺來の倭g來鯉議な吭龍で
*箸龍坤侫.奪轡腑?パン塁儔り
僖に嶄?クロワッサン
*蒙室坤丱好
兜めてから15定くらい
*侭奉Tagbangers
宥各タグバン
Tagbangers
*侭査痲妻佗馗隆曝
恷篠りは罪篋k予i15蛍
*芙t
Irg?住宥M?宥輩M?o嚥の4つのみ
*み氏
芙Lいじり
*茶氏TAG BAR
兜指からちょうど1定
AGENDA
1. 書指恬ったWebアプリケ`ションのB初
2. Springについて
3. ソ`スコ`ドの盾h
4. おまけ
1.書指恬ったWebアプ
リケ`ションのB初
旋喘宀砿尖アプリ
? 仟オ賠hC嬬
? シC嬬
? 匯E燕幣C嬬
? 茅C嬬
仟オ賠hC嬬の
撹
皆沿姻庄稼乙階秘壇-皆沿姻庄稼乙と竃氏ってから1定磯-
え
ビジネスロジックって
よくくけど採だ
Uすと、匍暦の胎尖
ビジネスロジックは、デ`タベ`スとユ`ザ
`インタフェ`スgの秤鵑里笋蠅箸蠅鰆酉
する返といったようなものを峺す┝斜g議
でない喘Zである。Wikipediaより
匯冱で冱うと
システム耕嗤の
お碧並何蛍
醤悶箭
? 鮫中から斌瞳g秘薦すると、飽zでDBに鞠hす
るI尖
? 桑催が仝1234567々ではなく仝123-4567々の
フォ`マットで秘薦されているかのチェックするI
尖
よし、スッキリヾ
2.皆沿姻庄稼乙について
Springって採
? Javaのフレ`ムワ`ク
? DI卆贋來の廣秘はとても嶷勣
? さまざまなプロジェクト
え殖┗照妝音慊殖
DI(Dependency Injection)災栖耒圓臨秘
吭龍わからん
DI
? DIとは、Springが砿尖しているインスタンスの
BeanをちょうだいとおいしてDIコンテナから
輝w侭に廣秘してもらうこと
DIコンテナ
Beanを砿尖している筍
Bean
Bean Bean
Bean UserCreateController.java
Beanちょうだい
Bean
京艶温稼唆
え?
狭ってどういうこと
{べてると、
コ`ヒ`狭からきてるっぽ
い
Java┘献礇錚
? ジャワコ`ヒ`はインドネシアのジャ
ワuをb仇とするコ`ヒ`狭。
WikiPediaより
Beanも晩云ZUはo
アドバイス
晩云ZUに
とらわれ^ぎない
さらにもう1つ
アノテ`ション竣≡
ってUさない圭がよい
コメントとの`い採
ってなりました
UYはこれくらいで
肝
Spring Bootとは?
Spring Boot-1-
? Spring Frameworkでアプリケ`ションをgに恬
るための碧Mみ
? 2014定4埖にver1.0がリリ`スで1.4.2が恷仟
? XMLやJavaConfigでのBean協x、ログのO協など
が音勣
Spring Boot-2-
? mavenに泙辰苫圓┐弌pom.xmlにくだけで卆贋
vSを盾Qしてくれる
? 措くもくもどういう咾をしているかよく岑らな
くてもそれなりに埓里淵▲廛蠅恬れる
どれくらいgかと
冱うと
Spring Initializrでぽちぽちすれば、
児云O協でBされたプロジェク
トを恬ることができる
Spring Initialize?
Spring Initializr
https://start.spring.io/
Spring Bootの
嶷勣な碧Mみ
AutoConfigure
? Springが戻工しているプロジェクトやOSSを旋喘す
るrに駅勣なBean協xをSpring Bootが徭咾俳个
てくれる碧Mみのこと
中宜なセットアップやO協がほとんど音勣になる
pom.xmlにいたものを
Bean鞠hするI尖など
徭嘖O協を嗤燭砲垢襪砲錬
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
このクラスに@Configurationを原嚥する
でも、、、
@Configurationないじゃん
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
@SpringBootApplication
に根まれている
はず。でも、、、
@Configurationないじゃん
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan(excludeFilters = @Filter(type =
FilterType.CUSTOM, classes = TypeExcludeFilter.class))
public @interface SpringBootApplication {
あやしい
つけた
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Configuration
public @interface SpringBootConfiguration {
@SpringBootApplicationは3
つのアノテ`ションを
1つにまとめたもの
@SpringBootApplication
? @EnableAutoConfiguration
? 徭嘖O協を嗤燭砲垢
? @ComponentScan
? このパッケ`ジ塘和で@Component、
@Service、@Controller、@RestController、
@Namedが原嚥されているクラスをDIコンテ
ナに鞠hする
? @SpringBootConfiguration
? このクラス徭悶をBean協x辛嬬にする
徭嘖O協が嗤燭
なるまでの送れ
1.禽鴛コンテナ(粥沿沿鉛庄界温岳庄看稼遺看稼岳艶恰岳)恬撹
2.京艶温稼酷温界岳看姻霞恬撹
3.spring.factoriesiz、
BeanDefinition函累xk、Kび紋え
4.京艶温稼鞠h
3.ソ`スコ`ドの盾h
pom.xml
?プロジェクトにvする秤鵑かれている
?聞いたいstarterやOSSの秤鵑鬚くとをレポジトリ
から函ってくる
<dependencies>
...
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
...
</dependencies>
@Controller
?Controllerだよって縮える
?これをくとSpring Bootで徭嘖O協の鵑箸覆辰
Bean鞠hされる
@RequestMapping
?create.htmlのactionで峺協したパスに匯崑している
パスにマッピングされる
?Spring Boot 1.4からは@GetMappingや
@PostMapping、@DeleteMappingなども鞠して
いる
@GetMapping = @RequestMapping(method =
RequestMethod.GET)
@Validated
?formの秘薦・船Д奪をしてもらいたいときにつけ
る
@PostMapping
public String save(
@Validated @ModelAttribute(name =
FORM_MODEL_KEY) UserCreateForm form,
BindingResult errors,
RedirectAttributes redirectAttributes) {
formの嶄にformがある
ときのエラ`チェック
UserCreateForm.java
@Getter
@Setter
public class UserCreateForm implements Serializable {
@NotNull
private String name;
private Integer age;
@NotNull
private Gender gender;
@Valid
private AddressForm address;
public UserCreateRequest toUserCreateRequest() {
return new UserCreateRequest(getName(), getAge(), getGender(),
Address.generateAddress(getAddress()));
}
}
@ValidをつけるとFormのなかの
Formの秘薦・船Д奪をする
皆沿姻庄稼乙に房う並
舞ってる
おわり

More Related Content

皆沿姻庄稼乙階秘壇-皆沿姻庄稼乙と竃氏ってから1定磯-

Editor's Notes

  1. ちなみに意温乙恢温稼乙艶姻壊ご贋岑のかた
  2. こんな湖じで三します。その麿、皆沿姻庄稼乙を僥ぶときに羨ちはだかった謁を府初します。
  3. 児云議なCRUDアプリケ`ションをg廾することが謹いかな燭箸いΔ里函△錣りやすさのためにこのようなアプリケ`ションにしました。 書指は、仟オ賠hC嬬にgっておしします。gHにg佩してみます
  4. 仟オ賠hC嬬の撹蹐砲弔い噸h苧します。 このアプリケ`ションは、MVCパタ`ンでg廾しています。 MVCは、Model、View、Controllerの待でModelがビジネスロジック、ViewがUI、ControllerがModelとViewの崙囮の叨護をもっています。 ここでは、UserCreateFormがModel、create.htmlとsearch.htmlがView、UserCreateControllerがControllerをあらわしています。 create.htmlで秘薦して隠贋ボタンを兀すと、name奉來と揖じ兆念のFormのフィ`ルドに、鯉{されUserCreateControllerにI尖が卞ります。 UserCreateControllerからUserServiceにI尖が卞りDBに隠贋し、壅業ControllerにI尖が卞り、search.htmlにリダイレクトしています。 しくは瘁ほどh苧します。
  5. 匯冱で冱うと、、、、
  6. SpringのコアC嬬となっているDIとAOPはとても嶷勣です。 さまざまなプロジェクトがあり、どのようなrに聞うか3つだけざっくりB初します。 まず、Spring Frameworkは、Webアプリケ`ションの_kするrに聞う。 肝に、Spring Dataは、デ`タベ`スにアクセスするrに聞う。 恷瘁に、Spring Securityは、ログイン鮫中恬りたいrとかあるペ`ジをる慙浤屬辰討襪チェックするrに聞う。 麿にもプロジェクトがあるのでぜひ{べてみてください。
  7. よく串にするSpring Bootとは採でしょうか
  8. バ`ジョン1.4からSpring 4.3をベ`スに恬られています。 Javaでアプリケ`ションを恬るのは中宜っていうイメ`ジが顕るほどgに兵められます。
  9. Spring Initializrから兵めると返函り壼くアプリケ`ションを恬れます。 ビルドツ`ル?Spring Bootのバ`ジョン吉をxんでプロジェクト兆などを秘薦し、 仝Generate Project々を兀和します。 すると、秘薦した朕がO協された彜Bのプロジェクトのzipファイルが鯛ちてきます。 これをIDEにインポ`トするだけです。
  10. AutoConfigureは、Spring Bootにおける階朕囁の碧Mみです。 これは、Spring Bootが佩う徭嘖O協の碧Mみであり、Bootの蒙罿裡韻弔煩圓┐襪里盃慴だと房いました。
  11. Spring Initializrを旋喘してプロジェクトを恬るとこのようなクラスが恬撹されます。 runメソッドの及1哈方に@Configurationが原嚥されたconfigurationクラスを局します。 これは、DIコンテナを伏撹するHに聞喘するクラスです。
  12. これは、葵皆沿姻庄稼乙京看看岳粥沿沿鉛庄界温岳庄看稼のインタ`フェ`スです。ここにも葵遺看稼韓庄乙顎姻温岳庄看稼ないじゃん
  13. これは、葵皆沿姻庄稼乙京看看岳遺看稼韓庄乙顎姻温岳庄看稼のインタ`フェ`スです。やっと需つけました,弔泙蝓△匹海に坪淫されていれば或悪です。
  14. 枠ほども峰べましたように
  15. ちなみにこの葵皆沿姻庄稼乙京看看岳粥沿沿鉛庄界温岳庄看稼は、アプリケ`ションのエントリポイントのクラスに原嚥します。
  16. 丹遊にh苧した京艶温稼を砿尖するためのものです。
  17. 京艶温稼協吶ファイルをiz、京艶温稼を伏撹するためのものです。
  18. 壊沿姻庄稼乙.韓温界岳看姻庄艶壊に慕けば、徭強譜協の鵑箸覆襦
  19. これが、Spring Bootで徭嘖O協が嗤燭砲覆襪泙任里おまかな送れです。瘁ほど、軟咾垢襪箸匹譴らい方のBeanが鞠hされるのかてましょう
  20. これまでのh苧を未まえてソ`スコ`ドをてましょう。このプロジェクトもSpring Initializrを旋喘して恬撹したものです。
  21. UseCreateFormは、嶄にさらにAddressFormを隔っています。 Formの嶄のFormのフィ`ルドの秘薦・船Д奪をしたってときにつけるアノテ`ションが@Validです。