Redisに不慣れなため、何をするにもコマンドリファレンスを調べています。今回は、Redisのデータの削除の方法を調べてみたので纏めておきます。 使用したRedisのバージョンはv3.2.3です。 Redisのデータを削除する方法は、 指定したキーを削除する。 選択しているデータベース内の全てのキーを削除する。 全てのデータベース内の全てのキーを削除する。 の3つあり、それぞれ異なるコマンドを使う。 指定したキーを削除する DELコマンドを使用する。 このコマンドは、選択しているデータベース内の指定したキーとそれに紐づくデータを削除する。 キーは複数指定することができる。 127.0.0.1:6379> keys * 1) "towers" 2) "test2" 3) "test1" 127.0.0.1:6379> del test1 test2 (integer) 2 127.0.0.1
本章では、Spring Bootで特定のコントローラーに対して、共通の処理を行う場合の方法について共有します。 インターセプターの役割 WEB開発をしていて、クライアントからのリクエストに対する処理を共通化したい場合があるかと思います。例えば、ログの書き出し、二重POSTの制御、セッション情報の検証など。そのような場面で、リクエストを受け取る個別のハンドラすべてに処理を記述していては開発コストがかかり、後のリファクタリング作業にも影響を及ぼしかねません。そこでSpringで、コントローラーの前後で特定の処理を挟み込む方法について紹介します。 実装 インターセプター まず、インターセプトの処理の記述方法を伝えます。Springでは、コントローラーの実行前、ビューのレンダリング前、ビューのレンダリング後に処理を挟み込めます。 import javax.servlet.http.HttpServ
Interceptorが複数あるとどうなるのか ここからが本題になってきます。 この辺の処理の流れを理解するには、DispatcherServlet.doDispatchメソッドを追いかけるといいです。 まず、HandlerExecutionChain.applyPreHandleメソッドでpreHandleを実行していることがわかります。 boolean applyPreHandle(HttpServletRequest request, HttpServletResponse response) throws Exception { HandlerInterceptor[] interceptors = getInterceptors(); if (!ObjectUtils.isEmpty(interceptors)) { for (int i = 0; i < interceptor
Welcome to Doma 2¶ Doma 2 is a database access framework for Java 8+. Doma has various strengths: Verifies and generates source code at compile time using annotation processing. Provides type-safe Criteria API. Supports Kotlin. Uses SQL templates, called “two-way SQL”. Has no dependence on other libraries. This document consists of following sections: User Documentation About Doma Links Help impro
Spring BootでSpring Cache(Cache Abstraction)を試したメモです Spring BootでSpring Cache(Cache Abstraction)のAOPを試してみました。 Cache Abstraction Maven Dependency @EnableCaching @Cacheable @CachePut @CacheEvict @Caching @CacheConfig JSR-107(JCache) Maven Dependency @CacheResult @CachePut @CacheRemove @CacheRemoveAll Cache Abstraction Cache Abstractionはキャッシュを抽象化する仕組みです。 実際のキャッシュの実装に依存せずにキャッシュを操作するインターフェースを提供します。 下記の実
@ConfigurationProperties(prefix="foo") public class FooContext { private int intervel; public int getIntervel() { return intervel; } public void setIntervel(int intervel) { this.intervel = intervel; } } @ConfigurationProperties(prefix="bar") public class BarContext { private int intervel = 10; // ここでデフォルト値を指定可能 public int getIntervel() { return intervel; } public void setIntervel(int intervel) { t
今回は2015年11月にバージョン1.0.0がリリースされ、2016年4月19日に1.1がリリースされたmybatis-spring-boot-starterの使い方を紹介します。 MyBatisをSpring Boot上で使う際は、mybatis-springから提供されているSqlSessionFactoryBeanやSqlSessionTemplateのBean定義を開発者が行う必要がありましたが、mybatis-spring-boot-starterの登場によりこれらのBean定義は自動コンフィギュレーションによって解決されます まずは、実際にmybatis-spring-boot-starterを利用して簡単なCLI(Command Line Interface)アプリケーションを作ってみます 。 Note: 2019/7/16: 追記 JDK 13で導入予定(現時点ではPrev
apply plugin: 'war' sourceCompatibility = '1.8' targetCompatibility = '1.8' compileJava.options.encoding = 'UTF-8' repositories { mavenCentral() } dependencies { providedCompile 'javax.servlet:javax.servlet-api:3.1.0' compile 'javax.servlet:jstl:1.2' compile 'org.springframework.security:spring-security-web:4.2.1.RELEASE' compile 'org.springframework.security:spring-security-config:4.2.1.RELEASE'
背景 ここ最近、データアクセスはS2JDBC(2WaySQL)で開発をしていたということもあり、Spring Data JPAのようにクラスファイルの中に文字列として"select column1,column2 from table・・・"みたいな書き方に違和感を覚えていました。そんな時にDoma2の存在を知る機会があったので、ちょっとやってみようかなと思い試してみました。 ちなみに、今の現場ではSpring Boot + MyBatisでやっていますが、 パッと見た感じxmlでマッピング書くのがめんどくさそう xmlがjavaクラスへの依存を持ってしまっている(resultMapとか)、etc javaとSQLを分離したい そもそもあまり詳しくない ってのもあり、やっぱ慣れてる2WaySQLだなーって思っています。 ※他のO/Rマッパーをもう少し理解すれば考え方は変わってくるかもしれま
はじめに SpringBootでDOMA2使ってみようと思い環境構築してたら、意外と躓いたので、手順を記述しておきます。 SpringBoot2 DOMA2 H2 Eclipse4.7 設定 プロジェクト作成 Eclipse開いて パッケージ・エクスプローラーで右クリック 新規 プロジェクト Springスターター・プロジェクト 名前に「sample」と入力 ※任意 グループに「jp.co.sample」と入力 ※任意 パッケージに「jp.co.sample」と入力 ※任意 「次へ」を押下 「web」にチェック 「次へ」を押下 「完了」を押下 ※ここまで終了したらプロジェクトが動くか確認しておいたほうがいいかもしれません。 POM.xmlに依存関係記述 DOMAの依存関係 <dependency> <groupId>org.seasar.doma.boot</groupId> <artif
概要 Spring Bootを利用したWebアプリケーションにおいて、実装・保守しやすいユニットテスト環境の設計について考えたことをまとめた、ある意味考察的な内容の記事です。 設計よりの記事なのでテストコードの具体的な書き方には触れていません。 環境 Windows 10 Professional Java 1.8.0_162 Spring Boot 2.0.0 JUnit 4.12 Maven 3.5.2 参考 Spring Boot Reference Guide - Part IV. Spring Boot features - 43. Testing Spring Framework Documentation - Testing Spring Data JPA - Reference Documentation デモアプリケーション プロジェクトの構成 パッケージの切り方 このデ
リクエストの入り口になるのはControllerになるため,初めてSpringを触る開発者の方も馴染みに深いと思うのですが,何も考えずにアプリを作っていくと,ついついControllerにビジネスロジックを実装してしまいがちです。そうすると,所謂保守性や可読性が低いFat Controllerが出来上がってしまうので,ビジネスロジックの隔離は強く意識したいポイントだと思います。 個人的にはそれぞれ以下の内容に徹するのが良いのでは?という考えです。 Controller リクエストの受付 リクエストパラメータのValidation Serviceの実行 例外処理 レスポンスの作成 Service ビジネスロジックの実行 外部サービスとの連携 Repositoryを介したデータ操作 トランザクション管理 Repository データ操作 Controllerの中で複数種類のServiceを呼び
@DataJpaTestとは エンティティとリポジトリのテストを行うためのAuto Configuratinを使用するためのアノテーション。これを使用することで簡単にテストを記述することができる。 以下のような特徴がある。 ・@Entitiy, @Repositoryを付与したクラスをApplicationContextへロードする。その他の@Serviceなどを付与したクラスはロードされない。 ・テスト(@Test)ごとにトランザクションをロールバックする。トランザクション制御は変更可能。 ・テストではインメモリDBを使用する また、テストクラス内でテストデータを操作するためにTestEntityManagerが用意されている。 詳しくは公式ドキュメント参照。 43.3.11 Auto-configured Data JPA Tests 例 JPAとテスト時にH2データベースを使用するた
Spring Data JPAには、Repositoryインターフェースに宣言されたメソッドを、その名前からクエリを生成して自動的に生成してくれるお便利機能があります。どんな命名規則があるのか分からなかったのでメモ。 基本的にはマニュアルの要約です。 環境 Java ・・・ jdk1.8 Spring Boot ・・・ 1.3.5-RELEASE DB ・・・ MySQL 5.7 構文 以下の3つの要素を規則に従って組み合わせたメソッド名をRepositoryインターフェースに宣言することで、自動実装が利用可能になります。 プレフィックス(find...By read...By query...By count...By get...By) キーワード フィールド名 以下のエンティティを例に使います。 @Entity public class Employee implements Ser
Java で Web Application を作成するときに何が気が重いって、環境や設定、クラス等必要なものをごちゃごちゃ揃える必要のあることだと思っています。 Spring Boot と Docker を使えばもっと身軽に開発ができるだろうなということで少し内容を整理してみます。 ここではサンプルとして単純な REST API を Spring Boot で実装し、アプリケーションの実行環境とデータベースを Docker Container で準備するという形を目指します。 データベース準備 REST API 実装 with Spring Boot Java Application 実行用 Image 作成 docker-compose でまとめて管理 環境 OS: Arch Linux (linux kernel: 4.9.3) Java: openjdk version “1.8.
spring.io 待望のSpringBoot2.0がリリースされました。 ので早速バージョンアップだー。 やったことといえば、 build.gradle のビルドスクリプトプラグインのバージョンアップだけ。 Spring Boot Gradle Plugin Reference Guide に書いてる通りですね。 - id 'org.springframework.boot' version '1.5.10.RELEASE' + id 'org.springframework.boot' version '2.0.0.RELEASE' そしたら java と io.spring.dependency-management が外れるので、追加。 + apply plugin: 'java' + apply plugin: 'io.spring.dependency-management'
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く