full-javaee-app
サーブレットを備えた完全なJava EEアプリケーション、重要な機能を備えたJPA
WorkAmericaプラットフォームの以前のバージョン
www.workamerica.coをご覧ください
このコードベースは、本格的なアプリケーション(種類のMVP)を開発するための以前のアプローチの1つです。それがほこりを集めて座っていることに気付いて、私たちはそれがそこにいる誰かに役立つことを期待してコードを公開することにしました。
採用されているテクノロジーのいくつかはかなり古風なものです(少なくともその実装では)が、今日の最新のアプリケーションでは見つけることができます。アプリケーションはJava EE 7に組み込まれており、Javaサーバーページ(JSP)にコンテンツを提供しています。 MySQLデータベースと通信するORMとしてEclipselink 2.0を使用します。フロントエンドは、ブートストラップ3の上に構築されており、純粋な(そして時にはお粗末な)javaScriptとjqueryのスプリンクリングがあります。
このアプリケーションは、基本的に、資格、取引、場所などの特定の基準で検索できる熟練した取引(プロファイルとログインを使用)の候補者のデータベースです。候補者がプロフィールをログインして記入することができ、雇用主は候補者をログイン、検索、除外して雇うことができます。上記のすべてを行うすべての機能に加えて、さらに多くの機能があります。
今後数か月間、このコードベース全体で有用なコードであると思うものの例をここにコンパイルします。これには、TwilioやSendGridなどの一般的なサービスに関するAPI呼び出し、またはHaversineフォーミュラを使用して人々のRADIUSベースの検索を実装するなどの複雑なシナリオが含まれます。製品のコアは、純粋なサーブレットを介したデータ交換と機能であるため、ほとんどレガシーテクノロジー(IMO)であるため、有用な情報のほとんどは、私が書いたヘルパークラスにあります。
これは「死んだ」コードベースであるため、既存のバグ/不明確または時代遅れのコードは修正されません。ただし、質問はヘルプされたラベルで投稿できます。ここでは、ほぼ「現状のまま」にアップロードされ、独自の機能と鍵/秘密を剥奪されました。
自由に掘り下げて使用できるものを使用するか、コードベースで物事を明確にするために私に連絡してください。
乾杯
有用な例:
外部API:
- MailChimp API v3.0を使用して新しいメンバーをリストに追加します
- Facebook認証を使用してユーザーを登録します
- SendGridで電子メールを送信します
- 新しいSendGrid連絡先を追加します
- sendgrid配信イベント用のWebhookを投稿してセットアップします
- GoogleのGeocode APIを使用します
- 公式のTwilioヘルパーライブラリv3.4.5を使用してテキストメッセージを送信する
- 公式のTwilioヘルパーライブラリv3.4.5を使用してTwilio番号を購入する
- Post経由でTwilio配信イベント用のWebhookをセットアップします
- 投稿経由でTwilioテキストメッセージを受信するようにWebhookを設定します
- AWS SDK v1.9.6を使用して、ファイルをAWS S3バケットにアップロードします
JPA関連:
- 環境変数から取得した構成でJPA entitityManagerFactoryを取得します
- JPAエンティティを介してMySQLからファイルを取得し、Apache Tikaを使用してファイルタイプを決定します
- サーブレットの投稿経由でファイルをアップロードし、JPAエンティティのMySQLに維持します
- さまざまなJPA機能
Java EE関連:
- サーブレットに投稿してファイルをアップロードします
- サーブレット経由で「ログイン」を実装します
- セッションを使用する場合は、サーブレット経由で「ログアウト」を実装します
- さまざまなJava EE機能
- JSPファイルの例
- JSTLを使用してファイルをインポートする(c:インポートを探してください)
- ループにJSTLを使用する(C:foreachを探してください)
- JSTLの使用if/else | switchステートメント(cを探してください:選択)
- JSTL IFステートメントの使用(C:IFを探してください)
- jspで式言語(el)を使用します($ {}タグを探します)
ユーティリティ/その他/外部ライブラリ。
- 緯度/経度の座標のペア間の距離を計算します(ハーバーニン式を使用)
- Apache Tikaを使用して、MySQLデータベースからBLOBのファイルタイプを決定します
- UNIXタイムスタンプ(MS)を日付オブジェクトに変換します
- 長さnのランダムな文字列を生成します
- 文字列の最初の文字を大文字にします
- get requestの応答を文字列として取得する
- サーブレットリクエストからクライアントIPを取得します
- Apache POIを使用して.xlsxファイルを読み取ります
- ジャージーを使用して投稿を消費するか、リクエストを取得します