いつもGitブランチ運用でこまること、考慮すべきポイントのまとめ
現在、新しいプロジェクトに参画してGitのブランチ戦略を考えています。
何回かブランチ戦略を考え、そして運用してきたのですが、思うところを書いてみます。
…Spring Security OAuth 2.0 Client の auto-configuration
上記のクラスが Import しているもの(など):
-
OAuth2ClientRegistrationRepositoryConfiguration-
ClientRegistrationRepositorybean 定義。OAuth2ClientProperties(spring.security.oauth2.client)プロパティから定義を取得して生成するインメモリレジストリを生成。
-
-
OAuth2WebSecurityConfiguration-
OAuth2AuthorizedClientServicebean 定義。 -
OAuth2AuthorizedClientRepositorybean 定義。 -
WebSecurityConfigurerAdapterデフォルト実装。- 全てのリクエストに authenticated を要求する。 oauth2Login, oauth2Client 有効化。
-
リファレンスリンク:
…`WebClient` の 覚書
RestTemplateBuilder の Bean がsingleton-socpeかつちょっと変態的なインスタンス生成を行っていたので驚いた、というエントリを昔書きました:
ところで、現時点で RestTemplate は既に maintenance mode なので、新規実装に用いるのは忍びないなあ、と思い、 WebClient を利用する前提で薦めることにしました。
クッキーの挙動は Same Origin Policy に従う…わけではない
次のQiitaのコメントを見て、そうなんだ、となりました:
根拠を探してみたところ、同じくQiitaの記事
…`git config pull.ff only` を設定しておこう
私は普段全く git pull は使わず、 git fetch で賄ってきたのですが、今日たまたま git pull を行ったところ、いつの頃からか次のようなメッセージが出るようになっていることに気づきました:
Spring Security から認可サーバサポートが無くなる、というのは取り敢えず見直されています
…世の中に認可サーバー製品がたくさんあるので、Spring Securityではサポートしないことを決定しました
Spring Bootブックレビュー Spring Boot 2 入門: 基礎から実演まで
Kindle Unlimited でいくつかのSpring Framework/Spring Boot 本が読めることに気づきました。
もし入門本として有用なものがあれば初心者の方に薦めていきたいなと考え、今回それらを呼んでみましたので感想を記録します。
…Spring SecurityのOAuth2.0関連の歴史を調査し実装してみた
Qiita に昔(2019年中頃)書いていた資料を転記し忘れていたので構成を見直してアップロードし直します。
2020年現在の状況はまた更新されています。次のURLを参照してください。
…Gradleプラグイン/アノテーションプロセッシング調査
元々JBoss/WildFlyの流れで開発してきたのでずっとMavenを利用してきたのですが、今度のプロジェクトではGradleを使うことに決まったようで、新しい知識が必要となりました。
…ISO 8601では 24:00 は妥当だったが改訂によりNGになった
moment().isValid()での24時00分00秒の挙動について - スタック・オーバーフロー より。
ISO 8601 の以前のspecでは、 0:00 も 24:00 も両方妥当な表記だったらしいです。 実際、“ISO8601 24:00” みたいなキーワードで検索するとそのように説明しているサイトも複数ヒットします。
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でアクセスします。
…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 ファイルを作成します。
Spring Boot でなるべく依存関係を小さくしてWebMVCを使ってみる
特に実用性とかは考えていない。何となくやってみたというだけ。
動かしたいやつ
@RestController
@RequestMapping("/")
public class MyController {
@GetMapping("/")
public String index() {
return "hello";
}
}
設定
<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>
@Configuration
@EnableWebMvc
public class WebConfig {
@Bean
ServletWebServerFactory servletWebServerFactory() {
return new TomcatServletWebServerFactory(8080);
}
@Bean
DispatcherServlet dispatcherServlet() {
return new DispatcherServlet();
}
}
@ComponentScan
public class MyApplication {
public static void main(final String[] args) {
SpringApplication.run(MyApplication.class, args);
}
}