TopJava internship

During the internship you will develop a full-featured Spring/JPA Enterprise application with role-based authorization and access rights on the most popular Java technology stack among employers.

 

After you graduate from TopJava, you can scratch the word Junior off your resume and start applying for jobs that weren’t available before
. Parallel to the main internship program, all participants will write a graduation project. The focus will be on how to solve the many development problems in Spring 5/JPA and the application architecture.

 

Who will be suitable for.

 

Knowledge of Java Core.
Know how to create a simple CRUD for working with a database
Have tried JDBC/SQL (at the select / update / delete level)
You are already confident in the basics of programming

 

Trainee topics

 

Module 0. Introduction session
✔ Course Overview
✔ Introduction to Java Enterprise
✔ Spring Pet-Clinic
✔ Getting your first job
✔ How to study properly
An overview of modern technology and tools
✔ Version control system. Git
✔ Preparing a working environment
✔ Homework

 

Module 1: Developing a web application
✔ Workout of the homework assignment
✔ Overview and configuration of Maven
✔ Installing and configuring Tomcat
✔ Servlets
✔ Forward and Redirect
✔ HTTP Protocol
✔ JSP, JSTL
✔ Logging. SLF4J and logback
✔ Logging levels. JMX
✔ Homework

 

Module 2: Fundamentals of the Spring Framework
✔ Analysis of the homework
✔ Third-party libraries: Apache Commons, Guava
✔ Design pattern Application Layers
✔ DAO design pattern
✔ Repository design pattern
✔ Design pattern DTO
✔ Overview of the Spring Framework. Spring Context.
✔ Spring Annotations
✔ Creating bins
✔ Homework

 

Module 3. Working with databases and testing
✔ Analysis of homework
✔ Life cycle of Spring context
✔ Application testing: JUnit, AssertJ, Spring Test
✔ Introduction to relational databases
✔ SQL language
✔ Overview of NoSQL databases
✔ Installing and configuring PostgreSQL
✔ Docker
✔ Working with databases from IDEA
✔ Configuring the database
✔ Connecting the database to the project
✔ Overview of the JDBC architecture
Creating a database initialization script
✔ Spring Jdbc Template
✔ Testing UserService via AssertJ
✔ Test Logging
✔ Homework

 

Module 4. Introduction to ORM. Hibernate
✔ Analysis of the homework
✔ Methods to improve the quality of Spring code: DB initialization and populating
✔ Context substitution in ORM testing. Hibernate
✔ Transactions.
✔ Transaction requirements. ACID
✔ Levels of transaction isolation
✔ Adding support for an embedded database. HSQLDB
✔ Starting the execution of a graduation project
✔ Homework

 

Module 5. Spring Data JPA
✔ Overview of JDK 9-16
✔ Migration of TopJava from 1.8 to 15
✔ Homework review
✔ Setting up logging output
✔ Spring @Transactional
✔ Setting up profiles in Maven and Spring
✔ Connection pooling
✔ Spring Data JPA
✔ Caching in the Spring Framework
✔ Homework

 

Module 6. Spring MVC
✔ Analysis of homework
✔ Hibernate Cache.
✔ Cascade deletion. Auto generate DDL
✔ Spring Web.
✔ JSP, JSTL, internationalization
✔ Dynamic profile change on startup
✔ Configuration of Tomcat via maven plugin. Jndi-lookup
✔ Spring Web MVC
✔ Spring Internationalization
✔ Homework

 

Module 7. REST API
✔ Analysis of homework
✔ DDL autogeneration by model
✔ Testing Spring MVC
✔ Migration to JUnit 5
✔ REST controllers
✔ Testing REST controllers: Jackson
✔ jackson-datatype-hibernate. Testing via matchers
✔ Testing via SoapUi
✔ Serialization of lazy loading in Hibernate
✔ Homework.

 

Module 8. Front-end development basics
✔ Analysis of homework
✔ WebJars. jQuery and JavaScript frameworks
✔ Bootstrap framework
✔ Handling datatables with Ajax
✔ jQuery notifications plugin
✔ Spring Security framework
Homework

 

Module 9. Introduction to Authorization
✔ Analysis of homework
✔ Spring Binding
✔ Spring Validation
✔ Moving DataTables to Ajax
✔ Creating a form for login/logout
✔ Implementation of a custom authorization provider
✔ How Spring Security works
✔ Proxying
✔ Test authorization
Using HTTP cookies
✔ Working with user sessions
✔ Spring Security Test
✔ Homework

 

Module 10. Spring Security framework. Part I
✔ Homework parsing
✔ JSON customization (@JsonView) and validations (groups)
✔ Spring Security Taglib
✔ Method Security Expressions
✔ Spring interceptors
✔ User Profile Editing
✔ JSP tag files for form field output
✔ Exception handling in Spring
✔ Encoding user password
✔ Migration to Spring 5
✔ Protection against cross-site request forgery (CSRF)
✔ Homework

 

Module 11. Spring Security framework. Part II
✔ Analysis of homework
✔ Localizing datatables, validation errors
✔ Protection against XSS (Cross Site Scripting)
✔ Error handling 404 (NotFound)
✔ Access to AuthorizedUser
✔ Restriction of user modification
✔ Deploying the application in Heroku
✔ Interview. Software development
✔ Possible improvements to the application

 

Module 12. Basics of Spring Boot
✔ Fundamentals of Spring Boot. Spring Boot maven plugin.
✔ Lombok, H2 base, ApplicationRunner.
✔ Spring Data REST + HATEOAS
✔ Swagger / OpenAPI 3.0
✔ Testing and caching in Spring Boot
✔ Migrating an application to Spring Boot