参加する代わりに
何かを分析している場合は、明確な言語で説明し、コメントを読んでコメントできる人を見つけてください(R.ファインマンと言い換えますが、はい、私はそうしました)。
すべてのコメントは、「はい、これは 〜白 ~~人 それ自体を「歓迎します。
目標
アプリケーション -製品の進捗レポート(スケール)の表示(可能であれば、企業内のネットワークを介したこれらのデータの配信(機能のため));
個人 -春の技術を少し理解している
技術
- スプリングウェブ
- 春のJPA
- ロンボク
- SpringFox Swagger(残りをテストします)
- jaybird-jdk17、バージョン3.0.5
- メイヴン
モチベーションガッシュスプリング+ファイアバード
最近、Ovsezavodオペレーター向けのLinux Mintの最初のクライアントプレースが作成され、Wineからのレポートの表示が常に適切であるとは限りませんでした。 (他のすべては正常に動作します-Qtの視覚化-SCADA、Java SEアーカイブ)。
踏まなければならない熊手
- 異なるバージョンのジャクソン依存関係(修正済み)、
- firebirdがエンコードタイプを設定しないと、デフォルト(S)なし、
出版物の最後にあるgitへのリンク。
ジャクソンとすべてすべて
さまざまなコンポーネントがさまざまなバージョンのジャクソンを締めました。これは不快なため、修正する必要があります。
チームによって明らかにされた
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
ポンポンで直します。
<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を使用している場合は、 外部ライブラリが見やすくなります。 すべての依存関係があり、適切なバージョンであること。
一般的なアプリケーション構造
アプリケーションのスプリングブートテストに慣れていないため、テストなしで実行します。
(「はい、その#肌の色はそれ自体を許可します」)
アプリケーション構成
私はベテランの開発者であり、確立された方法に精通していないため、次のことを行います。
- application.ymlで(データベース接続のセットアップ中)
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には空の本文が含まれています。
APIで実行しているのはSwaggerです。これは、プロジェクトの残りのパッケージと同じレベルに配置するパッケージ(インフラ)構成です。
プロジェクトに追加します。
- パッケージモデル
- clacc CModule-別名データ (最小の「コードモンキー」のLombokに感謝、メンバーのゲッター、セッター)、別名エンティティ (データベーステーブルの本質)。
- パッケージリポジトリ
- インターフェイスCModuleRepositoryはJpaRepository <CModule、String>を拡張し(データベースからデータを選択します)、今のところ何も追加する必要はありません( Queryなど )。
- パッケージサービス;
- クラスCModuleService-別名Serviceおよび@Transactional(readOnly = true)リポジトリを操作するため。
- パッケージリソース
- クラスCModulesResource-別名@ RestController、@ RequestMapping( "/ modules")は、このアドレスへのアクセスを担当します。 応答本体は自分でそれを行います(私たちにとってはこのように見えます)
RestController APIをあらゆる方法で使用します。これを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アプリケーションを実行するクラスを作成します。
@SpringBootApplication public class App { public static void main(String[] args) { SpringApplication.run(App.class,args); } }
モデル、リポジトリ、リクエストが目的のテーブル用に作成されます(モジュールがあります):
今、あなたは@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"), })
API-説明付きのクラスの名前。
説明付きの@ApiOperationメソッド名。
@ApiResponsesはAPIコードを返しました。
説明付きの@ApiResponse固有のコード。
例(はい、まだメインエンティティが含まれていますが、この記事では説明しません)
これで、REST APIを使用してデータの選択をテストできます。
使用された文献のリスト:
1. https://www.baeldung.com 2. https://docs.spring.io 3. Spring in Action, 5th Edition 4. https://www.firebirdsql.org/file/documentation/drivers_documentation/java/faq.html#how-can-i-solve-the-error-connection-rejected-no-connection-character-set-specified
githublink
Githubプロジェクト