- PVSM.RU - https://www.pvsm.ru -
Если разбираешь что-то, попробуй это описать понятным языком и найти того, кто прочитает и выступит с замечаниями (перефразировал Р.Фейнмана, таки да я это сделал).
Все комментарии, даже злобные в стиле "Да, что этот ~белый~~чел. себе позволяет" приветствуются.
Приложения — отображение отчетов о ходе продукта (весы) по возможности с раздачей этих данных по сети в пределах предприятия (для функционала);
Личная — немного разобраться в технологии spring
Недавно было сделано первое клиентское место под ОС Linux Mint для оператора "Овсезавода" и не всегда адекватная работа отображения отчетов из под Wine. (все остальное работает норм — визуализация Qt — SCADA, архивы Java SE).
Ссылка на git [1] в конце публикации .
Разные компоненты затянули jackson разных версий, как то неприятно, надо исправить.
Выявлено командной
mvn dependency:tree -Dincludes=com.fasterxml.jackson.core
+- org.springframework.boot:spring-boot-starter-web:jar:2.1.0.RELEASE:compile
[INFO] | - org.springframework.boot:spring-boot-starter-json:jar:2.1.0.RELEASE:compile
[INFO] | - com.fasterxml.jackson.core:jackson-databind:jar:2.9.7:compile
[INFO] - io.springfox:springfox-swagger2:jar:2.7.0:compile
[INFO] - io.swagger:swagger-models:jar:1.5.13:compile
[INFO] - com.fasterxml.jackson.core:jackson-annotations:jar:2.8.5:compile
Исправляем в pom.
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.9.7</version>
<exclusions>
<exclusion>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
</exclusion>
<exclusion>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.9.7</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.9.7</version>
</dependency>
Подправил, ок. получилось. Если используете IDEA, то здесь еще проще посмотреть External Libraries. Что все зависимости есть и они нужных версий.
С послойным тестированием Spring Boot приложения не знаком, поэтому сделаю без тестов
("Да что этот #цвет_кожи себе позволяет").
Поскольку я seasoned developer, а значит не ознакомлен с устоявшимися методами, то буду делать :
spring:
datasource:
driver-class-name: org.firebirdsql.jdbc.FBDriver
url: jdbc:firebirdsql://host:3050//work/cmn/db/namedb.fdb?sql_dialect=3&charSet=utf-8
username: ******
password: ******
useUnicode: true
characterEncoding: UTF-8
sql-script-encoding: UTF-8
jpa:
show-sql: true
Если не указать charSet=utf-8, то дефолтная будет NONE : На случай если в таблицах тоже NONE — получим нечитаемые символы или, согласно firebirdsql.org:
3.2.4 How can I solve the error “Connection rejected: No connection character set specified”
If no character set has been set, Jaybird 3.0 will reject the connection with an SQLNonTransientConnectionException with message “Connection rejected: No connection character set specified (property lc_ctype, encoding, charSet or localEncoding). Please specify a connection character set (eg property charSet=utf-8) or consult the Jaybird documentation for more information.”
Для начала index.html содержит пустое body;
Обкатка API — Swagger, package (infra) конфигурации которого поместим на уровне с остальными package проекта.
Добавлю в проект:
Будем работать с API RestController по всем путям, укажем это Swagger:
@Configuration
@EnableSwagger2
public class SwaggerConfiguration {
@Bean
public Docket documentation(){
return new Docket(DocumentationType.SWAGGER_2)
.select()
.apis(RequestHandlerSelectors.withClassAnnotation(RestController.class))
.paths(PathSelectors.any())
.build();
}
}
Создадим класс запускающий Spring Application:
@SpringBootApplication
public class App {
public static void main(String[] args) {
SpringApplication.run(App.class,args);
}
}
Модели, репозитории, request созданы для нужной таблицы (у меня это modules):
теперь можно браться за @RestController
@RestController
@RequestMapping("/modules")
@Api(tags = "Modules", description = "Modules API")
public class CModulesResource {
....
@GetMapping(value = "/{name}")
@ApiOperation(value = "Find module",notes = "Find the module by Name")
@ApiResponses(value = {
@ApiResponse(code = 200,message = "Modules found"),
@ApiResponse(code = 404,message = "Modules not found"),
})
Автор: AlexisVaBel
Источник [6]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/java/301346
Ссылки в тексте:
[1] git: #githublink
[2] Data: https://habr.com/users/data/
[3] Entity: https://habr.com/users/entity/
[4] Query: https://habr.com/users/query/
[5] Service: https://habr.com/users/service/
[6] Источник: https://habr.com/post/432244/?utm_campaign=432244
Нажмите здесь для печати.