Nuxt.jsとSpringBootによるSPA・RestApiの設計について

投稿者: Anonymous 現在、Nuxt.jsとSpringBootによるSPA・RestApiのWebアプリケーションの開発を考えております。 ローカルでの開発では ・フロントエンドをdevサーバ(3000)で起動 ・バックエンドをSpringBoot(8080)で起動 として、別々のサーバで動かせばうまくいくとは思いますが、 本番での運用方法がいまいちわかっていません。 SpringBootのプロジェクトにSPAのファイル群を jarファイルにまとめて、dockerで動かすのが理想ですが、 こんなことできるのでしょうか。 特に不明な点は、 Nuxt.jsを使用してフロントエンド開発を行った場合、 devサーバを使わずに、静的リソースとして扱えるのかどうか です。 よろしくお願い致します。 【開発環境】 Java 8 Spring Boot 2.1.1 gradle 4.10.2 nuxt 2.3.4 @nuxtjs/axios 5.3.6 解決 自己解決しました。 下記でwebpackのプロジェクトを作成し、 $ vue init webpack プロジェクト名 npmビルドすることで、distフォルダにindex.htmlとstaticフォルダが作成されました。 $ npm run build このindex.htmlとstaticフォルダをspring bootのsrcmainresourcesに格納することで spring bootを起動した際に、indexページを表示してくれました。 dockerでもうまくいきました。 回答者: Anonymous

Spring Boot1.5.3でaccess.logをファイルではなく標準出力に出力するには

投稿者: Anonymous 環境Google Cloud Platform(GKE) Spring BootアプリケーションをGKEを使ってデプロイしています。 tomcatのaccess.logファイルをファイルには保存できたのですが、 クーバネイティスが標準出力を拾ってStackDriverに転送してくれるため ファイルではなく、標準出力に出力したいのですが、可能でしょうか? 解決 トリッキーな方法ですが、こういうやり方があるみたいです。 なので、Linuxであればapplication.propertiesに以下の定義を追加すれば、うまくいくのではないかと思います。 server.tomcat.accesslog.directory=/proc/self/fd server.tomcat.accesslog.prefix=1 server.tomcat.accesslog.suffix= server.tomcat.accesslog.rotate=false server.tomcat.accesslog.pattern=%h %l %u %t &quot;%r&quot; %s %b ※Tomcat 8.0のアクセスログの出力はorg.apache.catalina.valves.AccessLogValveが担当していて、conf/server.xmlの<Valve className=”org.apache.catalina.valves.AccessLogValve” … の箇所で細かい設定をしています。 これと同様のことは、Spring Boot 1.5.3ではapplication.properties(またはapplication.yml)にserver.tomcat.accesslog.で始まる定義をすることで実現できるはずです。 どちらの設定もコンソールに出力するようなオプションは無いので、カスタムのAccessLogValveをつくらないと実現できないのかもしれません(前述のようなトリッキーや方法を使わないのであれば)。 回答者: Anonymous

JPAプロジェクトにおいてRepositoryファイル作成時にビルドエラーが起きる

投稿者: Anonymous エラー内容 Eclipse上で作成したJPAプロジェクトにおいて、Repositoryファイルを作成して以下のように記述したところ、次のようなエラー(赤い波線)が発生しました。 Reposirotyファイル記述内容 package model; import org.springframework.data.jpa.repository.JpaRepository; @Repository public interface ActivityRepository extends JpaRepository<Activity, Long> {} package modelの部分で起こっているエラー 型 org.springframework.data.repository.query.QueryByExampleExecutor を解決できません。必要な .class ファイルから間接的に参照されています JpaRepositoryの部分で起こっているエラー ビルド・パスが不完全であるため、プロジェクトはビルドされませんでした。org.springframework.data.domain.Example のクラス・ファイルが見つかりません。ビルド・パスを修正してから、このプロジェクトをビルドしてください             環境・プロジェクトの状況など プロジェクトのビルドパス ビルドパスに関して補足 domainフォルダ以下は確かに存在していないです。(Mavenファイルにどう記述すれば取ってこれるかもよくわかりません) やってみたことなど ネット上で、JPAプロジェクトおよびReposirotyファイルを作成している人のブログを探し、同じように書いてみたのですが、うまくいきません。 org.springframework.data.repository.query.QueryByExampleExecutor も org.springframework.data.domain.Example も、Mavenファイルにどのように記述すれば取り込んでこれるかもよくわかっておりません。 恐縮ですが、何かアドバイスいただけないでしょうか。 解決 もともとDB操作をやりたかったSpringBootのプロジェクトはまた別にJPAプロジェクトを新規作成し、Repositoryファイルを作成していたため、上記のエラーが出ておりました。 本などを参考にして、もともとのSpringBootプロジェクト内にReposirotyファイルを作成して同様に記述したところ、エラーは発生しなくなりました。 supaさん、解決時の対処についてご指摘ありがとうございます。自分のコメントだと48時間後でないと解決済みマークができないようなので、後日解決済みにします。 回答者: Anonymous

SpringBootでHTMLファイルをダウンロードしたい

投稿者: Anonymous SpringBootでHTMLファイルをダウンロードしたいです。 どのように考えていいのかがわからないのですが、 ①テンプレートとなるHTMLを用意して、一部分を表示したい内容に変更 ②変更したHTMLファイルをダウンロード こういうイメージなのですが 実装イメージがわきません… 参考になるようなサイトやキーワードなどありましたらご助言いただきたいです。 解決 このチュートリアルがまさにそれだと思います。 Thymeleafというテンプレートエンジンを使って、テンプレートにJavaからパラメータを渡すことで、クエリストリングによって返すHTMLを変えるということを実現しています。 日本語だとこれなどでしょうか。 回答者: Anonymous

SpringbootでMongoDB接続したい

投稿者: Anonymous こちらを参考にしています。 https://qiita.com/KoheiKanagu/items/2ba5f49632d9868159fc#group ◆SpringMongoConfiguration.java package com.yaskawa.DB.config; import java.util.ArrayList; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.data.mongodb.config.AbstractMongoConfiguration; import org.springframework.data.mongodb.core.mapping.MongoMappingContext; import com.mongodb.Mongo; import com.mongodb.MongoClient; import com.mongodb.MongoCredential; import com.mongodb.ServerAddress; public class SpringMongoConfiguration extends AbstractMongoConfiguration { @Value(“${spring.data.mongodb.host}”) private String mongoHost; @Value(“${spring.data.mongodb.port}”) private int mongoPort; @Value(“${spring.data.mongodb.database}”) private String mongoDB; @Value(“${spring.data.mongodb.username}”) private String username; @Value(“${spring.data.mongodb.password}”) private String password; @Override public MongoMappingContext mongoMappingContext()…(Continue Reading)

Spring Securityでユーザー登録時のパスワードの暗号化の一般的な書き方はありますか?

投稿者: Anonymous spring-security/SecurityConfig.java at 1e33627d87de0949c3f281ac8d3f4476e44d0093 · spring-projects/spring-security 上記公式のサンプルに UserDetails userDetails = User.withDefaultPasswordEncoder() .username(“user”) .password(“password”) .roles(“USER”) .build(); return new InMemoryUserDetailsManager(userDetails); という記載があります。おなじように同リポジトリには withDefaultPasswordEncoder を使った例が他にもたくさんあり、なるほど、これを使うのかと思いよくよく withDefaultPasswordEncoder の定義を見に行くと…. spring-security/User.java at master · spring-projects/spring-security * @deprecated Using this method is not considered safe for production, but is * acceptable for demos and getting started. For production purposes, ensure the *…(Continue Reading)

なぜわざわざサブシェルで呼び出しているのでしょうか?

投稿者: Anonymous Getting Started | Spring Boot with Docker に mkdir -p build/dependency && (cd build/dependency; jar -xf ../libs/*.jar) という記述がありました。この ()で包まれた部分についての質問になります。 Bashにおける括弧類の意味 – Qiita に subshellを起動してコマンドを実行する。 ()の中で実行したコマンドは別プロセスで実行されるので、起動したスクリプト内には何も影響を与えない。 とありますが、今回の例だと、何の意図があって、サブシェルで実行しているのでしょうか? 起動したスクリプトに影響を与えてはいけないものがあったりするのでしょうか? 解決 mkdir -p build/dependency && (cd build/dependency; jar -xf ../libs/*.jar) 「cd」によるカレントディレクトリ変更の影響をjarコマンド実行だけに収めておきたいという意図があると思います。 この例に限って言えば、()があってもなくてもあまり差がありませんが、この後に後続のコマンドが続く場合は、カレントディレクトリの変更が後段に及ばないようになると思います。 また、このコマンドを(後で、または他人が、)見返す場合に、 ()が付くことでcdとjarが関連付けられた一連のコマンドであることがわかりやすいという効果もあると思います。 そのような意味でこのコマンドを書いたひとは、cdしてからコマンド実行するという場面では()で囲むという習慣にしているような気がします。 回答者: Anonymous

Spring-bootで関連付けされているテーブルのデータを一括で取得する方法

投稿者: Anonymous Spring-bootというか、Hibernateの質問になるのでしょうか。 以下の様なテーブル構成のDBから社員情報を取得したい場合に、社員Classはどのようなアノテーションをつければ良いでしょうか。 OneToManyを使用すればできそうかと思ったのですが、関連付けする項目が社員テーブルにはないですし、関連付けテーブルではOneToOneにしかなりません。 質問自体がわかりにくい、このような方法では取得できない、そもそもこのような構成がおかしいという等々、細かい点でもご指摘いただけると助かります。 社員テーブル ID,NAME 1, TAROU 2, HANAKO 部署テーブル ID,NAME 1, 部署A 2, 部署B 3, 部署C 社員と部署関連付けテーブル(TAROUは部署Aと部署Bに属している。) ID,社員ID,部署ID 1,1,1 2,1,2 3,2,2 結果として以下の様なClassで取得したいです。 @Entity @Table(name = “shain”) class 社員 { @Id @GeneratedValue private int id; @Column String name; // ここに何らかのアノテーション等の設定で取得可能かと思っています。 List<部署> 所属部署; } 解決 この場合、多対多の関連なので@ManyToManyを使います。 @Entity @Table(name = “shain”) class 社員 {…(Continue Reading)

visual studio code で hotswap できない

投稿者: Anonymous ネットをあさるとIntelliJでhotswapしている例が出てくるのですが、visual studio codeで解決している例はありませんでした。 そもそも、spring-boot-devtools と springloaded があれば実現できそうなので、IntelliJだろうがvisual studio codeであろうがどちらでもよいと思ったのですが、違うのでしょうか? また、言語はKotlinを使用しています。 設定抜粋 build.gradle.kts dependencies { … runtimeOnly(“org.springframework.boot:spring-boot-devtools”) runtimeOnly(“org.springframework:springloaded:1.2.6.RELEASE”) … } application.properties … spring.thymeleaf.cache=false … 上記設定後、@Controller内にprint文を付け足し、ファイルを保存、ページをリロードしましたが、printの結果は出力されませんでした。もちろん手動でspringの再起動後は出力されました。なので、hotswapはできておりません。 関係あるとすると 20. Developer tools にリスタートの方法がIntelliJとEclipseで違うようなので、visual studio codeではどのようにするのか?という質問になるかもしれません。 ちなみに build.gradle.kts 末尾に bootRun { addResources = true } を足すと以下のエラーが起こってしまいます。 Expression ‘bootRun’ cannot be invoked as a function. 回答を受けてバージョンに関する追記: build.gradle.kts plugins { id(“org.springframework.boot”)…(Continue Reading)

サーバーサイドから取得した静的リソースをユーザーごとにアクセス制限をかけたい

投稿者: Anonymous 状況① 以下のようなディレクトリが存在します。 C └work  └pic   ├pic1.jpg   ├pic2.jpg   └pic3.jpg 状況② 以下のようなソースコードを書くことで以下のフロントエンド側のディレクトリ http://localhost:8080/data/pic 配下の画像リソースにアクセスできるようになります。 @Configuration public class WebMvcConfig implements WebMvcConfigurer { private static final String[] CLASSPATH_RESOURCE_LOCATIONS = { "classpath:/META-INF/resources/", "classpath:/resources/", "classpath:/static/", "classpath:/public/", "classpath:/custom/" }; @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { registry.addResourceHandler("/**").addResourceLocations(CLASSPATH_RESOURCE_LOCATIONS) .resourceChain(true) .addResolver(new VersionResourceResolver().addContentVersionStrategy("/**")); registry.addResourceHandler("/data/pic/**").addResourceLocations("file:///C:\workpic\"); } @Bean public ResourceUrlEncodingFilter resourceUrlEncodingFilter() { return new ResourceUrlEncodingFilter(); }…(Continue Reading)

logback.xmlを用意するとSpring Bootのログ出力まで影響をうけてしまう

投稿者: Anonymous java – logback show logs with line number – Stack Overflow Logback 使い方メモ – Qiita Best practices for loggers – Kotlin Discussions 上記を参考に下記の logback.xml を作りました。 本当は用意してないデフォルトの出力でもそこまで不満がなかったのですが、行番号を表示させたいので作成しました。 <?xml version=”1.0″ encoding=”UTF-8″?> <!DOCTYPE logback> <configuration> <appender name=”STDOUT” class=”ch.qos.logback.core.ConsoleAppender”> <encoder> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36}.%M(%line) – %msg%n</pattern> </encoder> </appender> <root> <appender-ref ref=”STDOUT” /> </root> </configuration> すると [THYMELEAF]…(Continue Reading)

特定のフィールド(カラム)だけを更新するメソッドをリポジトリに用意したい。クエリーを自作するのがベストなのか?その場合SQLインジェクションの心配はないか?

投稿者: Anonymous 特定のフィールド(カラム)だけを更新するメソッドをリポジトリに用意したいです。 java – Update single field using spring data jpa – Stack Overflow java – How to use hibernate @DynamicUpdate with spring data jpa? – Stack Overflow 上記あたりが、該当しそうな質問なのですが、2つ目に上げた質問への回答に I don’t recommend using @Query unless you have a case where native JPA/Hibernate is insufficient, but if you have a use-case to update a target…(Continue Reading)

Java(spring boot) インターフェースをnewしないで使う記法が理解できない

投稿者: Anonymous 以下のブログでインターフェースについて解説されています。 が、一点よくわからない所があります。 継承と委譲の使い分けと、インターフェースの重要性について interface IUserRepository { User getUser(int userId); void saveUser(User user); } // 実装クラス class UserRepository implements IUserRepository{ Database database; UserRepository(Database database){ this.database = database; } User getUser(int userId) { String sql = String.format("SELECT * FROM users WHERE user_id=%d", userId); // … } } // 実行クラス class SomeApplicationService { IUserRepository userRepository; void…(Continue Reading)

HTML5/javascriptで表示の切り替えをしたいのですが、find()の使い方がいまいちわかりません。

投稿者: Anonymous SpringBoot+HTML5で勉強中になります。 ■HTML5 <section id=”testsection” th:each=”testinfo, stat:${testInfos}” > // stat.indexが0の場合 <div class=”testsection active”>① <div th:text=”${testinfo.ラベル}” > <div th:text=”${testinfo.データ}” > // stat.indexが0でない場合 <div class=”testsection”>② <div th:text=”${testinfo.ラベル}” > <div th:text=”${testinfo.データ}” > </section> このようにしていて、activeの場合にスタイルCSSで「display: block;」となるようにしています。※①が表示されて②は非表示の状態 ここで、あるボタンが押された場合に①を非表示、②を表示にしたいのです。 ボタンのイベント処理をjavascript側 (A)でactiveな①を取得して、 (B)で①をdisplay: noneにし、 (C)ですべての①~②を取得し、 (D)でボタンの番号(changeNo)をINDEXとしたものをdisplay: block;にして 表示させれないかと思うのですが、(B)の後に(C)を取得しても①の分が取得できません。 なにか足りない処理などありますでしょうか。 ■javascript function change(changeNo) { // 言語 var activeInfo = $(‘#testsection’).find(‘.testsection.active’);(A) activeInfo.removeClass(‘active’);(B) var…(Continue Reading)

Descargar archivo desde REST

publicado por: Anonymous Buenas tardes, espero estén teniendo un buen día y me puedan ayudar con el siguiente problema…. Tengo el siguiente recurso: @RequestMapping(value = “/dowload”, method = RequestMethod.GET,produces = { MediaType.APPLICATION_OCTET_STREAM_VALUE}) public ResponseEntity<Resource> downloadPDFFile() throws IOException { File file = new File(“/home/recursos/archivos.pdf”); HttpHeaders headers = new HttpHeaders(); headers.add(“Cache-Control”, “no-cache, no-store, must-revalidate”); headers.add(“Pragma”, “no-cache”); headers.add(“Expires”,…(Continue Reading)

Spring bootの起動エラー(DBアクセスに失敗か?)

投稿者: Anonymous EclipseにてSpring initializrというサイトで作ったプロジェクト(mavenでwebでjpa)を解凍しEclipseにインポートしmain()を実行しようとしたところ下記のエラーとなりました。 恐らくapplication.propertiesになにか書かないといけないと思うのですがどうすればいいでしょうか。HSQLとはなんでしょうか?PCにはMySQLとPostgreSQLしか入れていません。 表示されたエラー APPLICATION FAILED TO START *************************** Description: Failed to configure a DataSource: ‘url’ attribute is not specified and no embedded datasource could be configured. Reason: Failed to determine a suitable driver class Action: Consider the following: If you want an embedded database (H2, HSQL or Derby), please put it on…(Continue Reading)

Spring Boot 起動するとユーザ名とパスワードを求められる

投稿者: Anonymous Spring Bootを勉強しようと始めたのですが、 「Springスタータプロジェクト」を作成して、実行した後、ブラウザからアクセスするとログイン認証が来てしまいます。ユーザ名とパスワードが分からず先に進めません。 現象 「サーバlocalhostがユーザ名とパスワードを要求しています。サーバの報告によると、これはXDBからの要求です。」 このメッセージが出て、ユーザ名とパスワードを求められてしまいます。127.0.0.1でも同じです。 環境 spring-tool-suite-3.9.8 JDK12 Windows10 Microsoft Edge 実行 プロジェクトの実行で「SpringBootアプリケーション」で実行 URL:localhost:8080/ 解決 XDBということは、そのマシンにOracle DBをインストールしていませんか?おそらく、Oracle DBと同時に入るアプリケーションサーバーが8080番ポートで既に起動していて、ログインを要求しているのではないかと思います。Spring Bootはポート競合で起動していないかもしれませんね。なので、Oracleを停止してから、Spring Bootを起動してみて下さい。 回答者: Anonymous

Junit+SpringBoot+JpaRepository.saveAndFlush()でmockit.doThrow()を指定してもExceptionが発生しない

投稿者: Anonymous 前提・実現したいこと JpaRepository.saveAndFlush()でExceptionが発生した場合のテストを行うためmockit.doThrow()を使用しています。 テストを行いたいメソッド内部でsaveAndFlush()の対象entityのインスタンス作成を行っている場合、saveAndFlush()戻り値がnullとなりExceptionが発生しませんでした。 しかし、saveAndFlush()の対象entityをテストを行いたいメソッドの引数に指定しテストクラスからentityを渡した場合、期待通りExceptionが発生しました。 上記違いでなぜmockit.doThrow()のExceptionが発生しないのかわからないため、ご教授いただけないでしょうか。 Exceptionが発生しないソースコード @Service @Transactional(readOnly = true) public class ServiceImpl implements Service { @Autowired private Repository _repository; @Override @Transactional(readOnly = false, rollbackFor = Exception.class) public boolean insert(String user) throws Exception { UserMst userMst = this.setUserMst(user); try { _repository.saveAndFlush(userMst); }catch(Exception e) { return false; } return true; } private UserMst setUserMst(String…(Continue Reading)

Can not issue data manipulation statements with executeQuery() が出る

投稿者: Anonymous @QueryでnativeQuery=trueにしてupdate文を作ったところ実行時に、下記のようなエラーが出ました。 どのようにすれば解決できますか? 2020-08-19 10:16:19.739 WARN 76089 — [nio-8080-exec-7] o.h.engine.jdbc.spi.SqlExceptionHelper : SQL Error: 0, SQLState: S1009 2020-08-19 10:16:19.739 ERROR 76089 — [nio-8080-exec-7] o.h.engine.jdbc.spi.SqlExceptionHelper : Can not issue data manipulation statements with executeQuery(). 2020-08-19 10:16:19.756 ERROR 76089 — [nio-8080-exec-7] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed;…(Continue Reading)

メッセージソースに「_ja」を含めると読めない

投稿者: Anonymous お世話になります。 spring boot のメッセージソースを利用するところではまっています。 以下のサイトを参考にサンプルを作りましたが、正しく動きません。 https://web-dev.hatenablog.com/entry/spring-boot/intro/message-source messages_ja.properties に 「msg1=メッセージ」のように設定して、コントローラクラスから、「msg.getMessage(“msg1”, null, Locale.JAPAN);」(msgはメッセージソースのインスタンス)した場合、以下のような例外が発生してしまいます。 org.springframework.context.NoSuchMessageException: No message found under code ‘msg1’ for locale ‘ja_JP’. messages_ja.properties を messages.properties に変更すると正しく取得できます。 他に、コントローラでロケールを受け取り、標準出力すると「ja」と表示されることを確認しています。 原因と思われるものは何でしょうか? よろしくお願い致します。 追記: ・application.properties の内容は「spring.messages.basename=messages」の一行だけです。 ・Spring boot のバージョンは v2.0.3.RELEASE です。 若干自己解決: 「messages_ja.properties」のファイルと同じ場所に、空の「messages.properties」ファイルを置いたら、メッセージが取得できるようになりました。不思議。 解決 Locale.JAPANで対応するプロパティは messages_ja_JP.properties となります。 Locale.JAPANESE は messages_ja.properties です。 なので、今のファイル名のまま使うためにはJAPANESE の方を使ってください。 また、_ja を省略するとデフォルトとして使われるため、取得可能になったはずです。 追記 springでAutoConfigureにてBeanを注入した場合、デフォルトのプロパティがないとだめなようです。 messages.propertiesがない場合はDelegatingMessageSource,message.properiesがある場合はResourceBundleMessageSourceがBeanとして注入されます。 もしmessages.propertiesを使いたくない場合は自分で注入するためのBeanを設定したほうが良さそうです。 回答者:…(Continue Reading)

STS Springスタータ-プロジェクト 404エラー

投稿者: Anonymous STSの「Springスタータープロジェクト」を作成して、実行すると①の画面表示して送信ボタンを押すと次のエラーが表示されます。 同じ端末にOracleとTOMCATがインストールしているためTOMCATのポートを8081に変更して実行しています。 何が原因したエラーなのでしょうか? 【エラーメッセージ】 Whitelabel Error Page This application has no explicit mapping for /error, so you are seeing this as a fallback. There was an unexpected error (type=Not Found, status=404). No message available 【①index.html】 <!DOCTYPE html> <html> <head> <meta http-equiv=”Content-Type” content=”text/html; charset=UTF-8″ /> <title>Hello Page</title> </head> <body> <form method=”post” action=”/result”> 名前を入力してください<br> <input…(Continue Reading)

Angular + Spring Boot. Failed to load resource: net::ERR_CONNECTION_REFUSED

publicado por: Anonymous Estoy haciendo un proyecto con angular + spring boot. Y me da el error: Failed to load resource: net::ERR_CONNECTION_REFUSED. A veces me sale este otro error: GET http://localhost:8090/api/employees net::ERR_CONNECTION_REFUSED, Dependiendo de si inicio angular con ng serve –proxy-config proxy.conf.json o con ng serve a secas. Mi controlador de Spring boot es el…(Continue Reading)

Java & Spring boot2 でValidationMessages.propertiesにアクセスする際、message.getMessage(…)と{}の違いは?

投稿者: Anonymous タイトル通りですが例えばデフォルトのバリデーション用メッセージファイルであるValidationMessages.propertiesにjava(Spring boot)からアクセスする際下記のように書くと思います。 ※上記ファイルにはapp.validation.NotNull = 必須項目と書いてあったとします。 @NotNull(message = {“app.validation.NotNull”}) これでアクセス出来て居るはずですが引数を渡す場合どうすればいいでしょうか? 例えばapp.validation.NotNull = {0}となっている場合{0}の部分に引数を渡せますよね? ここに渡す場合は{“”}形式では駄目なのでしょうか? そもそも基本的な事ですがValidationMessages.propertiesと普通のメッセージファイルであるmessages.propertiesにアクセスするには同じDIしたMessageSource型のオブジェクトを使うという認識でよろしいでしょうか? 解決 3. Validation, Data Binding, and Type Conversion – Spring Framework Core reference 「Spring Bootでは Bean Validationを利用可能です」、これを別の視点で言い換えると、「(Spring-wayでなく)Bean Validationの仕様に則ってvalidationを実装する必要があります」ということになります。 メッセージをSpring Bootでは一般的な messages.properties でなく ValidationMessages.properties に書く必要があるのも、Bean Validationの仕様でそう決まっているからです(5.3.1. Default message interpolation)。 質問文から行いたいことがどういうことか正確に理解できなかったのですが、まさに上のリンク先だったり、あるいはHibernate Validatorのリファレンス 4.1.3. Examplesに、より具体的なmessageの使用例がありますが、これで疑問は解決するでしょうか? そもそも基本的な事ですがValidationMessages.propertiesと普通のメッセージファイルであるmessages.propertiesにアクセスするには同じDIしたMessageSource型のオブジェクトを使うという認識でよろしいでしょうか? デフォルトでは異なります。同じにすることは可能です。 LocalValidatorFactoryBean#setValidationMessageSource: Specify a custom Spring…(Continue Reading)

Springbootで「?」が含まれるURLを取得したい

投稿者: Anonymous @Controller @ResponseBody public class GetProjectInfoRestController { @RequestMapping(path = “/test/{opt}”, method = RequestMethod.GET) public void test(HttpServletRequest request, @PathVariable(“opt”) String opt) { return; } } ブラウザで「http://localhost:8080/test/aaa」を実施すると 「@PathVariable(“opt”) String opt」に「aaa」がはいることを確認できたのですが 「http://localhost:8080/test/aaa?bbb」を実施すると 「@PathVariable(“opt”) String opt」には「aaa」までしか入っていませんでした。 「?」も含めて値を取得することは可能でしょうか? また、request.getRequestURL().toString()でURLを取得してみても 「http://localhost:8080/test/aaa」となっているようでした… 解決 @PathVariable はPathに含まれる指定したAliasの値しかとれませんので、クエリストリングを含めることができません。 たとえば http://localhost:8080/test/aaa?bbb=value というURLに含まれる bbbに対応する値を取得したい場合は @RequestParam(“bbb”) String bbb を引数に含めることで取得できると思います。 また、HttpServletRequest は以下のメソッドをもっています。 HttpServletRequest#getRequestURL HttpServletRequest#getQueryString 2つのメソッドが返す値を “?” で連結することでリクエストで使用したURLが取得できると思います。 本家サイトの方でHttpServletRequestについての質問があったので、参考にしてください。(回答はこちらも参考にしました) https://stackoverflow.com/questions/2222238/httpservletrequest-to-complete-url…(Continue Reading)

VSCode+java+Springboot環境でクラスファイルを追加する

投稿者: Anonymous 以下のページを参考に VSCode+java+Springboot の環境を作りました。 VSCodeでSpringBootのプロジェクト作成からアプリケーションの実行まで – Qiita 無事にアプリケーションは作成されたのですが、VSCodeでクラスファイル(たとえばcontrollerクラス)を追加する場合は、デフォルトで以下のような内容が追加されたりはできないのでしょうか?(Eclipseを使用していた感じにはならないのでしょうか?) package com.example.sampleproject.controller; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @Controller public class SampleController { } 解決 私は利用したことがないのですが、Spring RooのEclipse/STS pluginのことでしょうか。 (検索してみたところ、昔のSTSではインストール時に選択できていた用に見受けられます(参考)) こちらは一時期流行ったscaffolding機能を提供するものですが、元々はCLIツールでありコマンドラインで実行できます。 VSCode用のextensionは提供されていないようです。 また、開発は停滞しているように見えます。 少なくとも、現在のSTS4では、EclipseベースのものであってもSpring Rooへの導線はありません。 回答者: Anonymous

springBootで動的にOptionを変更したいです

投稿者: Anonymous springBootで動的にOptionを変更したいです。 メインのオプションの選択に従って サブのオプションの選択肢を変化させたいのですが、 どのようにしていいのかが浮かびません…。 アドバイスいただけると助かります。 ■java コントローラー  List mainoptionList;  List suboptionList;  →SubOptionはString option、String suboptionを持ちます。     mav.addObject(“mainoptionList”, mainoptionList);   mav.addObject(“suboptionList”, suboptionList); ■HTML5+thymeleaf <select id=”mainoption” name=”mainoption”> <option th:each=” mainoption : ${ mainoptionList } ” th:text=” ${ mainoption } “></option> </select> <select id=”suboption” name=”suboption”> <option th:each=” suboption : ${ suboptionList } ” th:text=” ${ suboption.suboption…(Continue Reading)

Spring Bootを2.3.0にバージョンアップしたら、 Unresolved reference: validation が出る

投稿者: Anonymous Spring Bootを2.3.0にバージョンアップしたら import javax.validation.Valid としていた箇所で、Unresolved reference: validation が出ました。 他にも、似たような箇所で、 Unresolved reference: NotBlank やUnresolved reference: Size 等が出ました。 どうすればよいのでしょうか? 解決 javax.validation.constraints missing in 2.3.0? · Issue #21465 · spring-projects/spring-boot Spring Boot 2.3 Release Notes · spring-projects/spring-boot Wiki 上記のリンクにある通り、spring-boot-starter-validation への依存関係を自分で示す必要があります。 私の場合は、build.gradle.ktsを使っているので、 build.gradle.kts に下記を追加で動きました。 implementation(“org.springframework.boot:spring-boot-starter-validation”) 回答者: Anonymous

maven buildでbatファイルを実行したい

投稿者: Anonymous maven buildを実施した際に、phaseが「prepare-package」の時にあるbatファイルを実行したいのですが、その様なことは可能でしょうか。 pom.xmlのexecutionタグ内に定義できないかなと考えているのですが… WEB上で検索してもなかなかその様な情報を見つけることができなかったため、質問しました。 初歩的な質問かもしれません…検索キーワードだけでもご教示頂けると幸いです。 OS:Windows7 開発環境:Eclipse 言語:Java フレームワーク:Spring Boot 解決 Exec Maven Pluginを導入すればできました。 回答者: Anonymous

Error al crear bean

publicado por: Anonymous Estoy aprendiendo lo básico de Spring y tengo el siguiente error al iniciar mi aplicacion. Error starting ApplicationContext. To display the auto-configuration report re-run your application with ‘debug’ enabled. 2017-12-17 18:37:36.331 ERROR 6748 — [ main] o.s.boot.SpringApplication : Application startup failed org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name ‘exampleComponent’: Unsatisfied dependency expressed through…(Continue Reading)

Spring BootにおけるJUnitがUnresolvedになる。

投稿者: Anonymous Spring BootにおけるJUnitがUnresolvedになる。 概要 現在、Kotlin + SpringBootを参考書を使用して入門中です。 そこで、参考書通りにJUnitを使用したテストコードを書き、% gradle testを実行したところ下記のようなエラーが発生しました。ライブラリが正常にインポートされていないのは理解できています…。 自分なりに色々調べてみましたが解決せず…。 どなたか解決方法のご教授お願いいたします。 エラー内容 > Task :compileTestKotlin FAILED e: /Users/kondohiroki/IdeaProjects/demo_db/src/test/kotlin/com/example/hello_db_app/demo_db/ControllerTests.kt: (6, 18): Unresolved reference: Before e: /Users/kondohiroki/IdeaProjects/demo_db/src/test/kotlin/com/example/hello_db_app/demo_db/ControllerTests.kt: (7, 18): Unresolved reference: Test e: /Users/kondohiroki/IdeaProjects/demo_db/src/test/kotlin/com/example/hello_db_app/demo_db/ControllerTests.kt: (8, 30): Unresolved reference: Before e: /Users/kondohiroki/IdeaProjects/demo_db/src/test/kotlin/com/example/hello_db_app/demo_db/ControllerTests.kt: (10, 18): Unresolved reference: runner e: /Users/kondohiroki/IdeaProjects/demo_db/src/test/kotlin/com/example/hello_db_app/demo_db/ControllerTests.kt: (21, 2): Unresolved reference: RunWith e: /Users/kondohiroki/IdeaProjects/demo_db/src/test/kotlin/com/example/hello_db_app/demo_db/ControllerTests.kt:…(Continue Reading)