親バカエンジニアのナレッジ帳

webのエンジニアをやっており、日頃の開発で詰まったことや書き残しておきたいことを載せています。

Spring Bootのトランザクションが効かない場合のチェック項目

Spring Bootでのトランザクション設定方法 メソッドがpublicになっているか @RequestMappingをつけているコントローラ自体にアノテーションを付与していないか try~catchで囲まれているか 更新処理をするメソッドが直接呼ばれているか 継承されたメソッドの…

AWS(EC2)でセキュリティグループの設定方法

AWS(EC2)のセキュリティグループ 設定方法 AWS(EC2)のセキュリティグループ AWS(EC2)ではセキュリティグループというものを設定しますが、その名の通りセキュリティに関しての設定になります。 グループって何?って感じですが、設定したセキュリティは使い…

AWS(EC2)でのサーバ構築とキーペア(鍵)を使ったSSH接続

AWS(EC2)でのサーバ構築 EC2作成・起動 キーペア(鍵)を使ったSSH接続 AWS(EC2)でのサーバ構築 AWSでのEC2サーバ構築は非常に簡単にできます。 スペックは高くないですが、1年間の無料枠もあるのでLinuxの操作に慣れたいという方などは勉強がてら触ってみては…

Vue.jsのdataプロパティで配列の変更はspliceで置き換えろ!

dataプロパティで配列の定義 変更する場合はspliceで置き換え 削除する場合もsplice 末尾に追加する場合は従来通りpushを使え 多次元配列はループなどで同様に変更可能 それぞれの配列の2番目(インデックスのキーが1)の値を変更する場合 dataプロパティで…

Vue.jsのdataプロパティでオブジェクトの変更は$setで置き換えろ!

dataプロパティでオブジェクトの定義 変更する場合は$setで置き換え 配列中のオブジェクトはループなどで同様に変更可能 例1) 配列の2番目(インデックスのキーが1)の場合にvalueを変更する場合 例2) nameが「test2-Name」の場合にvalueを変更する場合 data…

ThymeleafでJavascriptエラー(SAXParseException)

Thymeleafでのorg.xml.sax.SAXParseException例外 解決方法1 「&」をエスケープ 解決方法2 エスケープしなくても使用できるようにコメントを挿入する Thymeleafでのorg.xml.sax.SAXParseException例外 Thymeleafは構文チェックが厳しく、Javascriptなどをそ…

TomcatのインストールとCATALINA_OPTSの設定

Tomcatのインストールの仕方でCATALINA_OPTSの設定方法も異なる CATALINA_OPTSを設定する場面 Tomcatのインストール方法 wgetコマンドなどでソースコードをダウンロードしてからコンパイルする方法 yumでインストールする方法 Tomcatのインストールの仕方でC…

AMPページではてなブックマークのシェアボタンを動的に設置

AMPページではシェアボタンを置きたくなることが多い AMPページではSNSのシェアボタンを簡単に設置できる。 はてなブックマークのシェアボタンも非公式ではあるがAMPに対応している AMPページでのはてなブックマークボタンの実装方法 AMPページではシェアボ…

Sequel Proが重くなった場合の対処法

Sequel Proが重くなる事象 どんな動作が重くなる? 解決手順 Sequel Proが重くなる事象 https://sequelpro.comMacのMySQLクライアントソフトとして大変便利なSequel Proですが、長く使っていると突然動作がどっしりと重くなってしまう事象が発生します。 そ…

SPAサイトがGoogleにインデックスされない時の解決法

今回はSPAサイトがGoogleのSearch Consoleで「Fetch as Google」をしてもレンダリングされず、サイトがインデックスされない時の対応方法です。 Googleのbotがサイトのクロール時に使うブラウザは、Javascriptも動作するために、SPAサイトでも(ページの表示…

Vue.jsのv-bind:classで動的なクラス割り当て

ある条件を満たした時にクラスを割り当てる方法 ある条件を満たした時にクラスを複数割り当てる方法 ある条件Aを満たした時にクラスAを割り当て、ある条件Bを満たした時にクラスBを割り当てるなど、複数のクラスを割り当てる方法 三項演算子で条件次第で別々…

Vue.jsでScroll Depthが計測されない時の対処法

サイト分析において、ヘッダー内での読了率(つまりどこまで読まれたか)を分析することは重要ですよね。 そんな時に便利なライブラリはたくさんあるのですが、今回はその中の1つ、Scroll Depthについて、vue.js内で使用して上手く計測されない場合の対処法に…

Vue.jsのプロジェクトでGoogleAnalyticsの設置

プロジェクトをデプロイした後は、アナリティクスを設置してサイト分析をしますよね。 ここではそのための方法を2つほどご紹介したいと思います。まず1つ目は、vue-analyticsというモジュールを組み込む方法です。まずはモジュールをインストールしましょう…

Intellijでプロジェクトを開く時は、Import Project

Intellijで新規でプロジェクトを作る時ではなく、既存のソースを初めて開く時の話です。 Intellijを立ち上げた時にCreate New Project、Import Project、Open…とメニューが出て来ますが、フレームワークを使う時はImport Projectを選択しましょう。Openでも…

vue.jsで全ページ共通コンポーネントのまとめ方

全ページで毎回コンポーネントを書く方法 共通コンポーネントをrouterの外に出す方法 おまけ 複数のデザイン構成のサイトを作る場合 コンポーネントでヘッダーやフッターなど、どのページでも共通となる部分をまとめることってありますよね。 Vue.jsではその…

vue.jsでheadの要素を設定する時はvue-headが便利!

SPAでサイトの実装をすべてJavascriptで行う場合、headの要素までもJavascriptで行わなければいけないですよね。 要素を挿入するだけなのでやり方は色々ありますが、やはりライブラリなどを使用して簡単に実装したいところ。 そこで、vue.jsを使用している場…

ELBでNginxを利用した場合の完全SSL化

AWSのAWS Certificate Manager (ACM)をELBに適用し、SSLを強制的に適用させたい場合の対応方法です。 ELBではリスナーの設定で、ポート80(http)でアクセスされた場合もポート443(https)でアクセスされた場合もポート80でEC2に転送される設定になっていること…

MacにCentOS7のVagrant環境を構築

タイトルにある通り、MacにCentOS7のVagrant環境を構築した時のメモです。 必要なものをインストールしてvagrant sshでLinux環境に入れるまでの手順になります。バージョン情報 VirtualBox:5.1 CentOS:7.2まずはVirtualBoxのインストールです。 dmgファイ…

rbenvとruby-buildでMacにRubyをインストール

まず、Homebrewをインストールしてない方はそこからになります。 ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" 次にrbenvとruby-buildをインストールしてください。 brew install rbenv ruby-buildrbenvはRu…

ApacheとTomcatの連携でリダイレクトが上手くいかない

Javaで組まれたWebサイトをApacheとTomcatを連携させて動かしているのですが、 先日サイト改修により一部ページのURLも変更させた時のリダイレクト設定について苦労したのでそれについて書きます。 やりたいことは、「http://ドメイン/test/sample.html」と…

Spring Boot Devtoolsを使って自動再起動

Javaなどソースの変更をいちいちコンパイルをして確認する場合、 毎回コンパイルを手動でするのは面倒ですよね。 (慣れている人は何も感じないかもしれませんがw)Spring Bootでは自動でコンパイルをしてくれるツールがあるので、 少しは開発効率を上げるこ…

Spring Boot のJavaバージョンを変更

Intellijなど、IDEで開発する場合はJDKをインストールして使うので問題ないと思いますが、 本番環境にアップした場合などにJavaのバージョンを指定しておかないと開発環境で開発した通りに動作してくれないなどの問題が発生してしまいます。変更箇所はpom.xm…

Spring Bootの起動時にJDKのエラー(警告)が発生

Javaの一部JDKのバージョンでは、 Spring Bootの起動時に以下のエラー(警告)が発生することがあります。 /Library/Java/JavaVirtualMachines/jdk1.8.0_141.jdk/Contents/Home/bin/java ... objc[3929]: Class JavaLaunchHelper is implemented in both /Libr…

NekoHTMLを用いて、Thymeleafの厳しい文法チェックを回避

ti-tomo-knowledge.hatenablog.comの記事にも書きましたが、Thymeleafは文法チェックが厳しく、通常のHTMLでは問題ないはずの書き方をしてもエラー扱いされてしまいコンパイルが通りません。 特に閉じタグに関してはmetaタグやinputタグなど、普段閉じタグを…

Centos6.7でRailsを動かす環境をVagrantとAnsibleで作成

タイトルの通りですが、ansibleでrailsの環境をvagrant上に作った時の設定を記します。 データベース(MySQL等)の設定は省いています。 バージョン情報は以下になります。 ruby : 2.2.3 Rails : 5.0.1 passenger : 5.1.2vagrantのディレクトリ下にhostsファイ…

便利な$.contains

個人的にjQueryを書く時に便利だと思うがあまり使われているように見えないのが$.containsです。 使い方としては、$.contains(第一引数, 第二引数)のように書き、 第一引数が第二引数に含まれいてるかどうかの判定をします。どんな時に便利と感じるかといえ…

@PathVariableを必須にしない

Spring BootのGETリクエストでパラメータを設定した時、 パラメータを取得するには@PathVariableを使います。例えば以下のような@RequestMappingがあった場合、idは必須になります。 @RequestMapping(value="top/{id}", method = RequestMethod.GET) String …

rbenvを使ったRubyのインストールとバージョン変更

そもそもrbenvとは?というところですが、 rbenvは開発で使うRubyをインストールしたり、Rubyのバージョンを簡単に切り替えることができるツールです。 プロジェクトごとに別なバージョンに切り替えることも可能にする、大変便利なツールなのです。Linuxで使…

Node.jsとnpmの最新化

React.jsをgulpで起動させる設定をしていた時、 Node.jsとnpmのバージョンが低いためにモジュールのインストール時にエラーが発生しました。 ここではその時に両者をバージョンアップさせた方法を共有します。まずはNode.jsのバージョン確認です。 node -v v…

Spring BootでBean Validation (3) バリデーション処理を自作

ti-tomo-knowledge.hatenablog.com ti-tomo-knowledge.hatenablog.com上記2つのような流れで、BeanValidationにおける基本的なバリデーションの流れを見ていきましたが、 これらはあくまでBeanValidationやHibernateで事前に用意されたものです。 実際にサー…