Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
72 commits
Select commit Hold shift + click to select a range
2dd30d9
Добавление файлов.
Apr 22, 2019
4533cd4
- Добавление скриптов.
May 23, 2019
628b8ae
- Добавление dao объектов.
May 23, 2019
b782bf3
Чтение вводимых данных.
May 24, 2019
56ba6a0
Доработки моделей.
May 24, 2019
f8f5da1
- Добавление DAO для таблиц авторов и жанров.
May 27, 2019
91e179e
Рефакторинг, добавление новых shell команд.
May 27, 2019
eaed856
Рефакторинг.
May 27, 2019
034a299
Добавление тестов для GenreDaoJdbc.
May 28, 2019
0c2804a
Добавление тестов для BookDaoJdbc.
May 28, 2019
64febb3
Доработка AuthorDaoJdbc, BookDaoJdbc и тесты к ним.
May 29, 2019
27e6538
Добавление тестов, расширение функционала сервиса.
May 29, 2019
f23fcd4
Добавление тестов для BooksManageSevice.
May 29, 2019
486d0a3
- Доработка функционала.
May 30, 2019
ff74ea4
- JdbcOperations заменен на NamedParameterJdbcOperations.
May 31, 2019
b019b1b
- Изменены тесты.
Jun 5, 2019
4599977
Описание задания.
Jun 6, 2019
0ed6680
Работа с бд через jpa.
Jun 13, 2019
a9d5968
Рефакторинг.
Jun 13, 2019
b228def
- Работа с бд через jpa.
uoles Jun 13, 2019
88398c9
Настройка тестов для jpa.
Jun 14, 2019
6447037
- Доработка dao.
Jun 17, 2019
f8ca945
Доработка тестов и скриптов для бд.
Jun 17, 2019
e2f98fd
Рефакторинг.
Jun 17, 2019
31e0dfa
Обновление readme.
Jun 18, 2019
033c5da
- Добавлены названия тэстов.
uoles Jun 18, 2019
d790008
Изменена струкрура запроса для сущности Book.
Jun 20, 2019
2fde702
Использование Spring Data JPA.
Jun 20, 2019
93be77d
Merge branch 'feature/hw-06' into feature/hw-07-spring-data-jpa
Jun 20, 2019
6d1e02f
- Добавление сущности comment и клаччов к ней.
uoles Jun 21, 2019
d45245e
Переработка под Data Jpa.
Jun 21, 2019
13c56fc
- Изменение механизма добавления/обновления сущностей.
uoles Jun 22, 2019
f8d2433
Доработка выборки книг.
uoles Jun 22, 2019
61e5a5a
Merge branch 'feature/hw-06' into feature/hw-07-spring-data-jpa
uoles Jun 22, 2019
2e578aa
- Переработка под Data Jpa.
uoles Jun 22, 2019
de67a82
Переработка под Data Jpa.
Jun 24, 2019
871c88f
Переработка под Data Jpa.
Jun 25, 2019
297e33e
Рефакторинг.
Jun 25, 2019
691f77f
- Убрал @RunWith(SpringRunner.class).
Jun 26, 2019
39d6ef9
Интеграция Mockito.
Jun 27, 2019
30868a5
Доработка тестов.
Jul 5, 2019
cf5d07d
- Использование Mockito для тестирования сервисов.
uoles Jul 6, 2019
057e0f9
Рефакторинг.
uoles Jul 6, 2019
0fe48d3
Рефакторинг.
uoles Jul 10, 2019
cc47af7
- Подключение MongoDB.
uoles Jul 17, 2019
4dfc484
Доработка тестов.
uoles Jul 18, 2019
268a0ab
Доработка тестов.
uoles Aug 11, 2019
1b4e453
Доработка тестов.
Aug 12, 2019
7d3e9d6
Доработка тестов.
Aug 13, 2019
6efbc36
Тип id у сущностей изменен на String.
Aug 19, 2019
38a5d80
Подключил Mongock.
uoles Aug 19, 2019
cd25af8
Рефакторинг.
Aug 20, 2019
d46d345
Подключение Thymeleaf.
Aug 21, 2019
aabb763
Добавление контроллеров и страниц.
Aug 21, 2019
1c041f1
Подключение bootstrap.
Aug 21, 2019
df7b8d3
Доработка страниц.
Aug 26, 2019
2f84ebd
- Доработка страниц.
Aug 27, 2019
2f389c1
Доработка страниц.
uoles Aug 29, 2019
4ef6ded
Доработка сервисов.
uoles Sep 2, 2019
639c3b0
- Добавление тестов.
uoles Sep 3, 2019
d7c0d98
Поле редактирования id изменил на readonly.
uoles Sep 3, 2019
37fc204
- Добавление rest для создания сущности Author.
uoles Sep 18, 2019
6463d82
Доработка страниц.
Sep 18, 2019
2fe0c2d
Редактирование автора и жанра для книги.
Sep 18, 2019
de886cf
Редактирование книги для комментария. Редактирование жанра.
Sep 18, 2019
7b1eda7
Доработка страниц.
uoles Sep 19, 2019
186f7a6
Доработка тестов.
Sep 19, 2019
6b91981
Доработка тестов.
Sep 19, 2019
9545062
Доработка тестов rest-сервисов.
Sep 19, 2019
ddd0ec8
Доработка тестов для rest-контроллеров.
Sep 20, 2019
b68cd30
Рефакторинг.
Sep 20, 2019
94d75cc
Рефакторинг.
Sep 20, 2019
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 6 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,2 +1,7 @@
# OtusSpringHW-Library
Домашние задания по Spring для Otus с базами данных.

Домашнее задание #9:
- CRUD приложение с Web UI и хранением данных в БД.
- Создайте приложение с хранением сущностей в БД (можно взять DAOs из прошлых занятий).
- Использовать классический View, предусмотреть страницу отображения всех сущностей и создания/редактирования.
- View на Thymeleaf, classic Controllers.
229 changes: 229 additions & 0 deletions pom.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,229 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<name>home-work</name>

<groupId>ru.otus.mkulikov</groupId>
<artifactId>home-work</artifactId>
<version>1.0-SNAPSHOT</version>

<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.3.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>

<properties>
<encoding>UTF-8</encoding>
</properties>

<dependencies>
<dependency>
<groupId>net.sf.opencsv</groupId>
<artifactId>opencsv</artifactId>
<version>2.3</version>
</dependency>

<dependency>
<groupId>javax.annotation</groupId>
<artifactId>javax.annotation-api</artifactId>
<version>1.3.2</version>
</dependency>

<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.4</version>
<scope>provided</scope>
</dependency>

<!-- tests -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>

<dependency>
<groupId>org.assertj</groupId>
<artifactId>assertj-core</artifactId>
<version>3.12.2</version>
<scope>test</scope>
</dependency>

<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<version>5.3.2</version>
<scope>test</scope>
</dependency>

<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<version>5.3.2</version>
<scope>test</scope>
</dependency>

<dependency>
<groupId>org.junit.platform</groupId>
<artifactId>junit-platform-launcher</artifactId>
<version>1.4.1</version>
<scope>test</scope>
</dependency>

<!-- https://mvnrepository.com/artifact/org.mockito/mockito-all -->
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<version>2.21.0</version>
<scope>test</scope>
</dependency>

<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-junit-jupiter</artifactId>
<version>2.23.0</version>
<scope>test</scope>
</dependency>

<!-- Spring Boot -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>

<dependency>
<groupId>org.springframework.shell</groupId>
<artifactId>spring-shell-starter</artifactId>
<version>2.0.0.RELEASE</version>
</dependency>

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>

<!-- Mongo database -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>

<dependency>
<groupId>de.flapdoodle.embed</groupId>
<artifactId>de.flapdoodle.embed.mongo</artifactId>
</dependency>

<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-keyvalue</artifactId>
</dependency>

<dependency>
<groupId>com.github.cloudyrock.mongock</groupId>
<artifactId>mongock-spring</artifactId>
<version>2.0.0</version>
</dependency>

<!-- JPA -->
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-jpa</artifactId>
<version>2.0.8.RELEASE</version>
</dependency>

<!-- Bootstrap -->
<!-- https://mvnrepository.com/artifact/org.webjars/jquery -->
<dependency>
<groupId>org.webjars</groupId>
<artifactId>jquery</artifactId>
<version>3.4.1</version>
</dependency>

<!-- https://mvnrepository.com/artifact/org.webjars/popper.js -->
<dependency>
<groupId>org.webjars</groupId>
<artifactId>popper.js</artifactId>
<version>1.15.0</version>
</dependency>

<dependency>
<groupId>org.webjars</groupId>
<artifactId>bootstrap</artifactId>
<version>4.3.1</version>
</dependency>
</dependencies>

<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>11</source>
<target>11</target>
</configuration>
</plugin>

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<configuration>
<encoding>${encoding}</encoding>
</configuration>
</plugin>

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.22.0</version>

<configuration>
<skipTests>false</skipTests>
</configuration>
</plugin>

<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>

<resources>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.yml</include>
<include>**/*.txt</include>
<include>**/*.yaml</include>
<include>**/*.html</include>
<include>**/*.css</include>
</includes>
<filtering>false</filtering>
</resource>
</resources>
</build>
</project>
22 changes: 22 additions & 0 deletions src/main/java/ru/otus/mkulikov/Application.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
package ru.otus.mkulikov;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.context.properties.EnableConfigurationProperties;

/**
* Created by IntelliJ IDEA.
* Developer: Maksim Kulikov
* Date: 2019-03-14
* Time: 15:27
*/

@SpringBootApplication
@EnableConfigurationProperties
public class Application {

public static void main(String[] args) throws Exception {
SpringApplication.run(Application.class);
//Console.main(args);

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Не оставляйте закоментированный код. это некрасиво

}
}
15 changes: 15 additions & 0 deletions src/main/java/ru/otus/mkulikov/app/dao/AuthorDao.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
package ru.otus.mkulikov.app.dao;

import org.springframework.data.mongodb.repository.MongoRepository;
import ru.otus.mkulikov.app.model.Author;

/**
* Created by IntelliJ IDEA.
* Developer: Maksim Kulikov
* Date: 23.05.2019
* Time: 17:06
*/

public interface AuthorDao extends MongoRepository<Author, String> {

}
20 changes: 20 additions & 0 deletions src/main/java/ru/otus/mkulikov/app/dao/BookDao.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
package ru.otus.mkulikov.app.dao;

import org.springframework.data.mongodb.repository.MongoRepository;
import ru.otus.mkulikov.app.model.Book;

import java.util.List;

/**
* Created by IntelliJ IDEA.
* Developer: Maksim Kulikov
* Date: 23.05.2019
* Time: 13:28
*/

public interface BookDao extends MongoRepository<Book, String> {

List<Book> findByAuthor_Id(String id);

List<Book> findByGenre_Id(String id);
}
19 changes: 19 additions & 0 deletions src/main/java/ru/otus/mkulikov/app/dao/CommentDao.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
package ru.otus.mkulikov.app.dao;

import org.springframework.data.mongodb.repository.MongoRepository;
import ru.otus.mkulikov.app.model.Book;
import ru.otus.mkulikov.app.model.Comment;

import java.util.List;

/**
* Created by IntelliJ IDEA.
* Developer: Maksim Kulikov
* Date: 20.06.2019
* Time: 23:48
*/

public interface CommentDao extends MongoRepository<Comment, String> {

List<Comment> findByBook(Book book);
}
15 changes: 15 additions & 0 deletions src/main/java/ru/otus/mkulikov/app/dao/GenreDao.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
package ru.otus.mkulikov.app.dao;

import org.springframework.data.mongodb.repository.MongoRepository;
import ru.otus.mkulikov.app.model.Genre;

/**
* Created by IntelliJ IDEA.
* Developer: Maksim Kulikov
* Date: 23.05.2019
* Time: 17:07
*/

public interface GenreDao extends MongoRepository<Genre, String> {

}
15 changes: 15 additions & 0 deletions src/main/java/ru/otus/mkulikov/app/exception/ObjectNotFound.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
package ru.otus.mkulikov.app.exception;

/**
* Created by IntelliJ IDEA.
* Developer: Maksim Kulikov
* Date: 03.09.2019
* Time: 1:58
*/

public class ObjectNotFound extends RuntimeException {

public ObjectNotFound(String obj, String id) {
super("Not found object - " + obj + ", id - " + id);
}
}
Loading