[JAVA] Spring Boot for the first time

Spring Boot for the first time

Recently, I'm thinking of getting a job aiming to improve my skills, so I'm new to frameworks, but using frameworks I'm thinking of creating a portfolio.

Currently, I am retired, so I plan to create a portfolio in about a month, Post an article as a memorandum at that time.

Build a simple inventory management system using Spring Boot as the content of the portfolio. We plan to continue designing DBs and screens, deploying to AWS, etc. I first read some introductory books because I needed to know the specifications of Spring Boot.

Here, you can use the latest book to read the application even from those who have no experience with Spring Boot. Introducing books that will give you the knowledge to build.

The prerequisite knowledge required to read the books to be introduced is roughly as follows. ・ Knowledge of Java8 language specifications (Oracle qualification Java8 Gold acquisition level) Since the book to be introduced is implemented in Java8, Knowledge of Java 8 is essential. Among them, StreamAPI appears frequently, so Java8 Gold is used to move the functional interface. You should know

・ Basic pattern of Java8 design pattern A basic design pattern is used as the Spring architecture, Many books also explain based on the contents of design patterns. Patterns to keep in mind include singletons, factory methods, adapters, builders, Proxy etc. need to be in advance as knowledge. Some books use simple UML class diagrams to explain. In particular, the concept of delegation used to explain DI must be understood even if you have little experience with Java.

・ Basic knowledge of Linux (LPIC level 1 acquisition level) When building the Spring Boot environment, some explanations are based on command operations, so You need to know the basic commands of Linux As an example, call RestAPI while developing in the local environment. For example, call it from a local process on the command line

・ Basic knowledge of DB The introductory book to be introduced uses H2DB, MYSQL, and POTSGRESQL to perform DB operations. Understanding basic SQL for reading and writing data, connection pool, JDBC specifications, etc. considering Java cooperation It is necessary to know how to read the ER diagram, normalization, isolation level, and propagation level.

・ Basic knowledge of HTML, CSS, JavaScript HTML is written using a template called Timeleaf, which is a function of Spring. To understand the content, it is better to easily understand the simple movements of CSS and JS. HTML cannot be read without knowing how to create table tags. Since CSS is used to explain the screen with simple decoration, it can be handled while searching the net. JS is male, but some are described. How to move the click function You need to understand the behavior of asynchronous requests.

·tool You need to know how to use Eclipse. This is because I feel that there are not many books that explain in a polite manner. As a build tool, it is better to understand the movement of Maven at the command level. Even if you don't, the books introduced below can handle it, but it may get stuck. It is better to have it as knowledge.

Finally, I felt that I needed to read the code of the application using Java in the field. The reason is that Spring Boot books are a tool for building entire applications. Since each chapter of Spring is not related to each other and there are a lot of sample code partially posted, In the first place, if you do not understand what kind of function the application is made up of, This is because I don't understand how to implement the code described and what the code is for.

Based on the above, for those who are planning to learn Spring Boot (Spring) from now on I would like you to read the books introduced from the top in order.

An introductory book to not regret Spring Kaitai Shinsho

https://www.amazon.co.jp/%E3%80%90%E5%BE%8C%E6%82%94%E3%81%97%E3%81%AA%E3%81%84%E3%81%9F%E3%82%81%E3%81%AE%E5%85%A5%E9%96%80%E6%9B%B8%E3%80%91Spring%E8%A7%A3%E4%BD%93%E6%96%B0%E6%9B%B8-Boot2%E3%81%A7%E5%AE%9F%E9%9A%9B%E3%81%AB%E4%BD%9C%E3%81%A3%E3%81%A6%E5%AD%A6%E3%81%B9%E3%82%8B%EF%BC%81Spring-Security%E3%80%81Spring-JDBC%E3%80%81Spring-MyBatis%E3%81%AA%E3%81%A9%E5%A4%9A%E6%95%B0%E8%A7%A3%E8%AA%AC%EF%BC%81-ebook/dp/B07H6XLXD7/ref=sr_1_1?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&crid=2VJILBQ819F6&keywords=spring+%E8%A7%A3%E4%BD%93%E6%96%B0%E6%9B%B8&qid=1578155083&sprefix=spring+%E8%A7%A3%E4%BD%93%2Caps%2C268&sr=8-1

The point of this book is that it is excellent and "you can write code that works for the time being". When building an application, it can be read without the prerequisite knowledge required to implement Spring. If you copy the program described in the book, It is written so that you can understand the rough specifications of Spring naturally.

Many of the books introduced below do not work with simple sutras, and you will learn Spring. There are many things that you can't get the prerequisite knowledge, but this book will work if you really copy it.

Some of the Spring versions are older, and some don't work. If you understand the basic specifications of Java and can read the stack trace, you can search the net. Of course, you don't even need to be able to read the Spring framework stack trace at this stage.

As a description of the book, what is the Spring framework, the advantages of DI, the basic movement of Spring MVC, It describes the movement and practical usage of AOP, DB linkage, how to implement RestAPI, and the basics of vulnerability countermeasures using Spring Security.

It is structured so that you can imagine the whole picture of the Spring application if you proceed while copying the sutras. No other book like this is the one I've been looking for, and I can conclude that it's the first book a beginner should read.

I definitely recommend reading from this book first.

Getting Started with Java Build Tools Maven / Gradle / SBT / Bazel

https://www.amazon.co.jp/Java%E3%83%93%E3%83%AB%E3%83%89%E3%83%84%E3%83%BC%E3%83%AB%E5%85%A5%E9%96%80-Maven-Gradle-SBT-Bazel%E5%AF%BE%E5%BF%9C/dp/4798049387/ref=sr_1_1?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&keywords=java+%E3%83%93%E3%83%AB%E3%83%89%E3%83%84%E3%83%BC%E3%83%AB%E5%85%A5%E9%96%80&qid=1578156639&sr=8-1

This book explains how to use Java build tools. Even in the book introduced at the beginning, there is a content that starts Maven in Eclipse and acquires the library. You can see what's actually going on on the command line.

Also, some Spring books use Gradle as well as Maven. You need to know the basic movements in this book.

We recommend that you actually operate the command and continue reading.

Spring Boot for the first time

https://www.amazon.co.jp/%E3%81%AF%E3%81%98%E3%82%81%E3%81%A6%E3%81%AESpring-Boot%E2%80%95%E3%82%B9%E3%83%97%E3%83%AA%E3%83%B3%E3%82%B0%E3%83%BB%E3%83%95%E3%83%AC%E3%83%BC%E3%83%A0%E3%83%AF%E3%83%BC%E3%82%AF%E3%81%A7%E7%B0%A1%E5%8D%98Java%E3%82%A2%E3%83%97%E3%83%AA%E9%96%8B%E7%99%BA-I%E3%83%BB-BOOKS-%E4%BF%8A%E6%98%8E/dp/4777519694/ref=sr_1_1?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&keywords=%E3%81%AF%E3%81%98%E3%82%81%E3%81%A6%E3%81%AESpring+Boot&qid=1578156848&sr=8-1

This book is also used to understand the basic Spring movement. The content to be implemented is similar to the book introduced at the beginning, Some write different programs, Some are not in the first book.

It's also a review, and you need to read it to get used to Spring.

Introduction to Spring Data JPA Programming

https://www.amazon.co.jp/Spring-Data-JPA%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E5%85%A5%E9%96%80-%E6%BA%9D%E5%8F%A3%E8%B3%A2%E5%8F%B8/dp/4798051950/ref=sr_1_1?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&keywords=spring+data+jpa&qid=1578157041&sr=8-1

From here, the level goes up a little. We recommend that you read it together with the following books, You should read this book as a reference.

Throughout the book, database linkage is described. Acquisition of connection pool when linking with database Its behavior when mapping DB tables and Java objects. It describes how Java works with DB.

When dealing with Spring, it is important to know the behavior of EntityManager and TransactionManager I think it's very important, so I felt it was better to read this book early.

Read the whole thing once, copy the exercise program, and if necessary We recommend that you reread the important parts.

Actually, when you have trouble writing SQL or Entity class when you make your own application It may be good to read as needed to understand the detailed specifications.

However, since there are many explanations of isolation level and propagation level, it is necessary to understand these specifications first.

Since it also explains the architecture of Spring DATA JPA, I felt that it was a must-read book to improve my applied skills.

While learning frameworks, which language and which framework can be used A book that I felt was not very important. Being aware of the architecture, why frameworks are preferred I think it will be a good opportunity to develop applied skills while understanding little by little.

The behavior of the architecture may not be understood from this book alone We recommend that you read the relevant parts of the following books together.

A thorough introduction to Spring

https://www.amazon.co.jp/Spring%E5%BE%B9%E5%BA%95%E5%85%A5%E9%96%80-Spring-Framework%E3%81%AB%E3%82%88%E3%82%8BJava%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E9%96%8B%E7%99%BA-%E6%A0%AA%E5%BC%8F%E4%BC%9A%E7%A4%BENTT%E3%83%87%E3%83%BC%E3%82%BF-ebook/dp/B01IEWNLBU/ref=sr_1_2?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&keywords=spring+data+jpa&qid=1578157041&sr=8-2

The content of this book is very difficult for beginners. Based on the architecture, not a book that specializes in writing programs This is because many of them explain the flow from the abstract concept to the implementation of the actual class.

At this stage, there are a lot of places that I can't read, Not just in a position to handle frameworks When I was in a position to implement the framework from now on It seems to be very useful as a model case.

In this book, there is a part that explains each function of Spring separately from the function of Spring Boot alone. Since it accounts for the majority, it is recommended that you read the contents of the Servlet while searching the net.

In this book, especially because the content of the architecture may not be understood suddenly We recommend that you read it together with the following books.

An introduction to Spring MVC / Roo programming

https://www.amazon.co.jp/Spring-MVC-Roo-%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E5%85%A5%E9%96%80-%E6%8E%8C%E7%94%B0%E6%B4%A5%E8%80%B6%E4%B9%83-ebook/dp/B00OYN686O/ref=sr_1_1?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&keywords=spring+mvc%2Froo&qid=1578158363&sr=8-1

This book is a little old. Therefore, we recommend that you read the necessary parts based on the books introduced above.

In the above book, such as application server parameter settings, etc. I felt that there were many things that were lacking in words, so I recommend reading this book as a supplement.

At the moment, it seems that many of them have become legacy writing styles, It seems to be important for understanding the basic movement and architecture of MVC.

There are many parts I haven't read, but as a supplement to deepen my understanding of Spring. I think you need to read it as needed.

Finally

That's all, but it's been about a month and a half since I started learning Spring Boot. I was able to grasp the overall movement of Spring in the above book.

In the future, I especially want to deepen my understanding of the architecture without being obsessed with legacy writing. I would like to encourage you to read the thorough introduction to Spring.

Even if you are new to the framework, please read it in the order of introduction above.

that's all

Recommended Posts

Spring Boot for the first time
Spring AOP for the first time
Introduction to java for the first time # 2
Learning for the first time java [Introduction]
First Spring Boot (DI)
I tried using Docker for the first time
Walls hit by Rspec for the first time
Android Studio development for the first time (for beginners)
I tried touching Docker for the first time
Spring Boot for annotation learning
Learn for the first time java # 3 expressions and operators
Oreore certificate https (2020/12/19) for the first time with nginx
Try running Spring Cloud Config for the time being
Learning memo when learning Java for the first time (personal learning memo)
How to study kotlin for the first time ~ Part 2 ~
How to study kotlin for the first time ~ Part 1 ~
Change the injection target for each environment with Spring Boot 2
[Rails] I tried using the button_to method for the first time
Frequent annotations for Spring Boot tests
Memo after the first Spring project-MVC-
Use DBUnit for Spring Boot test
Memo after the first Spring project-Database-
Modeling a Digimon with DDD for the first time Part 1
Think when Rails (turbolinks) doesn't load the page for the first time
Be aware that the default for Spring boot redirect is http
Memo after the first Spring project-What is Spring-
Touching kotlin for the first time-Enum Classes
WebMvcConfigurer Memorandum of Understanding for Spring Boot 2.0 (Spring 5)
Change session timeout time in Spring Boot
Use the l method for time notation
[Spring Boot] Post files and other data at the same time [Axios]
[First Java] Make something that works with Intellij for the time being
Challenge Spring Boot
The story of releasing the Android app to the Play Store for the first time.
Spring Boot Form
[Socket communication (Java)] Impressions of implementing Socket communication in practice for the first time
Creating an app and deploying it for the first time on heroku
Spring Boot Memorandum
[For internal use] For those assigned to the Spring Boot project (under construction)
gae + spring boot
Programming for the first time in my life Java 1st Hello World
Book introduction: Spring Boot Recommended reference book for beginners!
The story of raising Spring Boot 1.5 series to 2.1 series
Let's check the feel of Spring Boot + Swagger 2.0
Install Amazon Corretto (preview) for the time being
Annotation notes when writing tests for Spring Boot
Use Java external library for the time being
[Spring Boot] How to refer to the property file
Run Dataflow, Java, streaming for the time being
View the Gradle task in the Spring Boot project
Spring Boot --How to set session timeout time
The story of intentionally using try catch for the first time in my life
Impressions and doubts about using java for the first time in Android Studio
A story about a super beginner participating in the AtCoder contest for the first time (AtCoder Beginner Contest 140)
Plans to support JDK 11 for Eclipse and Spring Boot
Settings for connecting to MySQL with Spring Boot + Spring JDBC
[Spring Boot] POST file array / list and other data at the same time [Axios]
Specify the encoding of static resources in Spring Boot
How to set Dependency Injection (DI) for Spring Boot
How to write a unit test for Spring Boot 2
[For beginners] DI ~ The basics of DI and DI in Spring ~