unhurried

コンピュータ関連ネタがほとんど、ときどき趣味も…

Spring FrameworkにおけるBeansとは

Spring Framework初心者である私がSpring BootのGetting Startedガイドを読んでみたときに、いきなり躓いたのがSpringのBeansという概念でした。これまでSpring Frameworkに触ったことがなければ、Beansと聞くとJava Beansをイメージするかもしれませんが、Spring Frameworkでは独自の概念として使われているので注意が必要です。

Spring FrameworkにおけるBeans

Beansとは、Sprint IoC(DI)コンテナが管理(インスタンスの生成や保管)する、アプリケーションを構成するオブジェクトのこと。従来のXMLで設定する方法の他に、Javaアノテーションでも設定できる(現在はこちらが主流)。

JavaアノテーションでのBeans設定例

Beansを設定するには@Configurationを付与したクラスに@Beanを付与したメソッドを定義する。公式リファレンスでは同じ設定をJavaアノテーションXMLで定義した以下の例が紹介されている。

@Configuration
public class AppConfig {

    @Bean
    public MyService myService() {
        return new MyServiceImpl();
    }
}
<beans>
    <bean id="myService" class="com.acme.services.MyServiceImpl"/>
</beans>
参考

自転車保険調査

これまで契約していた自転車保険の更新時期なので、契約を見直そうと少し調査してみました。

要件

  • 個人賠償は1億円以上
  • 死亡保障・入院保障は不要

一覧

今回調査した中で最もお得なのは全日本交通安全協会が販売するサイクル安心保険であった。その他は自動車・火災・傷害保険に付け足せるものがコストパフォーマンスが良い。(以下では東京海上日動のものだけを記載しているが、その他のカードや保険会社にも同様のオプションがある。)

名称 提供元 月額 年額 個人賠償 死亡・後遺症 入院 示談交渉 メモ
サイクル安心保険 プランA 全日本交通安全協会 1230円 1億円 なし なし あり 自転車に係る事故のみ補償
トータルアシスト 個人賠償責任補償特約 東京海上日動 1530円 無制限(国外1億円) なし なし あり 東京海上日動 保険契約者向け
ラクラク WEB サイクルアシスト 朝日火災 1620円 1億円 100万円 日額1000円 あり 2・3年契約割引あり
トッピング保険 日常生活賠償プラン JCB 150円 1800円 1億円 100万円 なし あり JCBカード保有者向け
CYCLE PARTNER サイクルベースあさひ 170円 1920円 2億円 最大400万円 日額2000円 あり 自転車に係る事故のみ補償
超かんたん保険 自転車保険プラン 楽天 140円 1960円 1億円 100万円 日額1500円 あり
eサイクル保険 価格.com専用プラン 東京海上日動 2030円 無制限(国外1億円) なし なし あり

参考

API for DMM Mobile

Node.jsからGoogle ChromeChromium)を操作するライブラリpuppeteerを試してみるついでに、スクレイピングを利用したアプリケーションを開発しました。DMM Mobileのマイページを操作することで以下の機能をAPI化しています。

  • 高速通信容量残高の取得
  • 通信モード(高速・低速)の取得
  • 通信モード(高速・低速)の切り替え

ソースコードhttps://github.com/unhurried/api-for-dmm-mobile

※ あくまでpuppeteerでのスクレイピングのサンプルコードですので、実行する際にはサービスの最新の利用規約に従ってください。

Node.jsでURLからファイル名の拡張子を抽出する

ファイルシステムのパスからファイル名の拡張子を抽出するときにはpathのみで対応できますが、URLの場合にはクエリやフラグメントが付くので最初にurlでパス部分を抽出する必要があります。単純な問題ですが実装するときに少し悩んだので、備忘録としてまとめました。

app.js
const path = require('path');
const url = require('url');

const targetUrl = 'http://example.com/a.b?c=d#e'

const parsedUrl = url.parse(targetUrl)
const ext = path.extname(parsedUrl.pathname)
console.log(`ext: ${ext}`)
実行結果
$ node app.js
ext: .b

Union Bank アラート通知設定

最近届いたDMで知ったのですが、Union Bankでは口座に対するアクティビティについて、メールもしくはSMS(アメリカ・カナダの電話番号のみ)で通知を受け取れる機能があるそうです。普段あまり口座をチェックしない方は設定しておくと安心できそうです。

具体的には、以下のアクティビティに対してアラートが設定できます。

  • 口座
    • 残高が〇以下となったとき
    • 〇ドル以上の引出があったとき
    • 〇ドル以上の預金があったとき
  • その他
    • ATM(デビッド)カードに疑わしいアクティビティがあったとき
    • オンラインバンキングにログインしたとき

Herokuでpuppeteerを動かす

Herokuにpuppeteerを使ったアプリをデプロイする方法について、ブログ等で色々な方法が紹介されていますが、2018年1月時点で最も簡単な方法について整理しました。

  • (1) nodejs、(2) puppeteer-heroku-buildpack 順でBuildpackを適用する。
  • 日本語のフォントが必要な場合はjontewksではなくCoffeeAndCodeのpuppeteer-heroku-buildpackを利用する。

下記のコマンドでBuildpackを適用したアプリが作成できる。

heroku create app-name
heroku buildpacks:set heroku/nodejs -a app-name
heroku buildpacks:add https://github.com/CoffeeAndCode/puppeteer-heroku-buildpack -a app-name
参考

つみたてNISA調査

従来のNISA制度に加えて今年から新たにつみたてNISAという制度が始まりました。NISAとの違いやNISAを利用している人の移行のポイントを自分なりに調べてみました。

つみたてNISAとNISAの比較
つみたてNISA NISA
年間投資上限 40万円 120万円
非課税期間 20年 5年
ロールオーバー できない できる
投資対象 金融庁が承認した投信・ETF 投信・ETF・株式など
投資方法 積み立て 制限なし
投資可能期間 2037年 2023年
NISAからつみたてNISAへの移行
  • 1年ごとにつみたてNISA、NISAのどちらかを選択する必要がある。
  • NISAが利用できる2023年までは自分投資タイプに合った方を利用するのが良い。(例えば、年間に40万円以下の積み立て投信しかしないのであれば、つみたてNISAの方が適する。)
  • NISAからつみたてNISAに移行する場合、NISAの資産は購入から5年間は非課税で保有できるため、その期間の評価益が出ているタイミングで売却もしくは課税口座に移管できると良い。
参考