Spring Security OAuth 2.0 Client の auto-configuration


上記のクラスが Import しているもの(など):

`WebClient` の 覚書


RestTemplateBuilderBean がsingleton-socpeかつちょっと変態的なインスタンス生成を行っていたので驚いた、というエントリを昔書きました:

ところで、現時点で RestTemplate は既に maintenance mode なので、新規実装に用いるのは忍びないなあ、と思い、 WebClient を利用する前提で薦めることにしました。

Read more ⟶

クッキーの挙動は Same Origin Policy に従う…わけではない


Read more ⟶

`git config pull.ff only` を設定しておこう


私は普段全く git pull は使わず、 git fetch で賄ってきたのですが、今日たまたま git pull を行ったところ、いつの頃からか次のようなメッセージが出るようになっていることに気づきました:

Read more ⟶

Spring Security から認可サーバサポートが無くなる、というのは取り敢えず見直されています


世の中に認可サーバー製品がたくさんあるので、Spring Securityではサポートしないことを決定しました

Read more ⟶

Spring Bootブックレビュー Spring Boot 2 入門: 基礎から実演まで


Kindle Unlimited でいくつかのSpring Framework/Spring Boot 本が読めることに気づきました。

もし入門本として有用なものがあれば初心者の方に薦めていきたいなと考え、今回それらを呼んでみましたので感想を記録します。

Read more ⟶

Spring SecurityのOAuth2.0関連の歴史を調査し実装してみた


Qiita に昔(2019年中頃)書いていた資料を転記し忘れていたので構成を見直してアップロードし直します。

2020年現在の状況はまた更新されています。次のURLを参照してください。

Read more ⟶

Gradleプラグイン/アノテーションプロセッシング調査


元々JBoss/WildFlyの流れで開発してきたのでずっとMavenを利用してきたのですが、今度のプロジェクトではGradleを使うことに決まったようで、新しい知識が必要となりました。

Read more ⟶

ISO 8601では 24:00 は妥当だったが改訂によりNGになった


ISO 8601 の以前のspecでは、 0:0024:00 も両方妥当な表記だったらしいです。 実際、"ISO8601 24:00" みたいなキーワードで検索するとそのように説明しているサイトも複数ヒットします。

Read more ⟶

Spring Boot で Controller と Repositoryを同じクラスで併用する


…なんてことができたんですね。こんなコード:

@RestController
@Repository
public interface VehicleInterface extends JpaRepository<vehicle, Long> {

    @Query("select u from vehicle u where u.year = :year")
    @RequestMapping(value = "/vehicles", method = RequestMethod.GET)
    List<vehicle> findByYearEquals(@Param("year") Integer year);
}

http://localhost:8080/vehicles?year=2010 的なURLでアクセスします。

Read more ⟶

Spring-BootでJSPを使う


https://start.spring.io/ で depencencies に Spring Web を追加して生成します。

生成された pom.xml に次の依存関係を追加します:

pom.xml
<dependency>
    <groupId>org.apache.tomcat.embed</groupId>
    <artifactId>tomcat-embed-jasper</artifactId>
</dependency>
<dependency>
    <!-- 必要に応じて -->
    <groupId>javax.servlet</groupId>
    <artifactId>jstl</artifactId>
</dependency>

appliction.properties に次を追加します:

application.properties
spring.mvc.view.prefix=/WEB-INF/view/
spring.mvc.view.suffix=.jsp

src/main/webapp/WEB-INF/view/ の下に JSP ファイルを作成します。

Read more ⟶

Spring Boot でなるべく依存関係を小さくしてWebMVCを使ってみる


特に実用性とかは考えていない。何となくやってみたというだけ。

動かしたいやつ

1
2
3
4
5
6
7
8
9
@RestController
@RequestMapping("/")
public class MyController {

    @GetMapping("/")
    public String index() {
        return "hello";
    }
}

設定

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot</artifactId>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-webmvc</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.tomcat.embed</groupId>
      <artifactId>tomcat-embed-core</artifactId>
    </dependency>
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
@Configuration
@EnableWebMvc
public class WebConfig {

    @Bean
    ServletWebServerFactory servletWebServerFactory() {
        return new TomcatServletWebServerFactory(8080);
    }

    @Bean
    DispatcherServlet dispatcherServlet() {
        return new DispatcherServlet();
    }
}
1
2
3
4
5
6
@ComponentScan
public class MyApplication {
	public static void main(final String[] args) {
		SpringApplication.run(MyApplication.class, args);
	}
}
Read more ⟶

${...}と#{...}の違い


より。

${…​} は単なるプロパティのプレースホルダ。

#{…​}Spring Expression Language(SpEL) の構文。

プレースホルダは置き換えるだけだけれども、SpELはもっと複雑なこともできる(Javaのメソッドを呼び出したりとか)。

Read more ⟶