[スプリング掲示板-1の環境設定]一般的な開発者


開発環境のインストール


ファイルリンクのインストール


下部のプログラムをダウンロードしてインストール
クリップIDE
JDK-11
Tomcat 9.0.46 - 64bit-windowsZip
Maven 3.8.1 eclipse-inst-jre-win64.exe로 설치가 안되면 zip 파일로 받아서 압출 풀기

スプリングスプリングツールSuiteの取り付け(STS)


If tag mismatch fail 설치 문제시 - 하단 링크에서 설치파일을 이클립스로 드래그앤드랍sts 4
https://marketplace.eclipse.org/marketplace-client-intro?mpc_install=1794107
sts 3
https://marketplace.eclipse.org/content/spring-tools-3-standalone-edition
結果:

新規プロジェクトを作成するには、次の手順に従います。


1スプリングアイテムの作成
File > New > Other > Spring Legacy Project > Spring MVC Project
デュアルターゲットサーバへのプロジェクトの追加
3成果物(UTF-8符号化設定前)

インストール時のエラーレスポンス

  • openjdk、jdkバージョンによっては、スプリングに関連するツールトムキットなどの異なるバージョンがサポートされているかどうかを確認する必要があります.
  • イクプス自体にエラーが発生した場合もあります.メタデータ(このクリップ設定について)を削除し、
  • を再試行します.
  • cmdを使用してjava-versionを行う場合、jdkが正常にpathに設定されていることを確認します.eclipse.ini sts.iniなどの起動プロファイルにjdkが設定されていることを確認します!
  • -vm
    C:\Program Files\Java\jdk-11.0.12\bin\javaw.exe
  • を参照してください.sts 4はSpringレガシープロジェクトをサポートしていません.sts 3 addonもインストールする必要があります.
  • スプリングプロジェクトフォルダ構造を解析するには、次の手順に従います。



    1 src/main/javaにjavaファイルを保存する
    2 src/main/resourcesスプリングプロファイル、クエリーの保持
    3 src/test TDDの作成
    4 src/main/webapp jsp、jsファイルの保存
    5 servlet-context.xml, root-context.xml-subletプロファイル
    フォルダ構造:

    最初のコントローラの分析:

    /**
     * Handles requests for the application home page.
     */
     
    //비즈니스 로직 분기, 수행결과 응답해주는 Dispatcher 역할 담당하는 클래스
    @Controller
    public class HomeController {
    	
    	private static final Logger logger = LoggerFactory.getLogger(HomeController.class);
    	
    	/**
    	 * Simply selects the home view to render by returning its name.
    	 */
             
            //클라이언트 jsp 요청에 해당하는 비지니스 로직을 찾는 역할.
    	@RequestMapping(value = "/", method = RequestMethod.GET)
    	public String home(Locale locale, Model model) {
    		logger.info("Welcome home! The client locale is {}.", locale);
    		
    		Date date = new Date();
    		DateFormat dateFormat = DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG, locale);
    		
    		String formattedDate = dateFormat.format(date);
    		
                    //비즈니스 로직에서 수행한 결과를 화면에 보내줌. 
                    //serverTime 이름으로 formattedDate을 전송. 
    		model.addAttribute("serverTime", formattedDate );
    	 
              /**
              * 수행결과 응답을 보내주는 위치 명시. home = home.jsp 
              * 서블릿 설정에서 자동으로 앞에 /WEB-INF/view prefix를 붙여주고.
              * jsp suffix를 붙여주게 되어 있다.
              */
    		return "home";
    	}
    	
    }
    servlet-context.xml
  • 以前/WEB-INF/view/home.jspに接続する構成
  • 	<!-- Resolves views selected for rendering by @Controllers to .jsp resources in the /WEB-INF/views directory -->
    	<beans:bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    		<beans:property name="prefix" value="/WEB-INF/views/" />
    		<beans:property name="suffix" value=".jsp" />
    	</beans:bean>
    
            <!-- 해당 경로에 있는 모든 스프링 빈을 어노테이션을 통해서 자동으로 인식하게 한다. -->
            <context:component-scan base-package="com.company.first" />

    JDK設定



    Tomcat設定



    Maven設定




    C:\DEV-ENV\apache-maven-3.8.1\conf\settings.xml
    <settings xmlns="http://maven.apache.org/SETTINGS/1.2.0"
              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
              xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.2.0 http://maven.apache.org/xsd/settings-1.2.0.xsd">
      
        <localRepository>C:\DEV-ENV\apache-maven-3.8.1\repository</localRepository>
      <!-- localRepository
       | The path to the local repository maven will use to store artifacts.
       |
       | Default: ${user.home}/.m2/repository
      <localRepository>/path/to/local/repo</localRepository>
      -->

    Mavenを使用してリポジトリを管理する方法


    pom.xml
    1ライブラリの追加
    mavenでは、<dependency></dependency>というタグで各ライブラリを追加できます.
    定数2を追加<properties></properties> javaに似たfinal static.定数として宣言します.
    3ライブラリバージョンの管理<org.springframework-version>3.2.4.RELEASE</org.springframework-version>スプリングバージョンを定義バージョンに変更したときの数字だけです.
    4ライブラリクローズ位置<repositories></repositories>ライブラリのリポジトリをダウンロードするには
    5リポジトリをプロジェクトに割り当てる<dependencies><dependencies>

    Eclipse設定


    Git add ignore compiled classes



    Check Default Encoding



    Add Project to Tomcat Server



    クリーンアップ用語


    スプリング:


  • Spring:Java言語に基づくオープンソースWebフレームワーク.POJO

  • フレームワーク:共通ユーティリティ(クラス)の集合(集合)

  • 評価向けプログラミング(AOP):モジュールの取り外し
    ログ記録、トレンドマップ、セキュリティなどのモジュールは別々に管理できます.必要に応じてのみ呼び出されます.

  • 依存注入(DI:Dependency Injection):外部設定でモジュールを定義することで結合を最小化します.
    コンポーネント間の依存関係を、内部ソースコードではなく外部設定ファイルとして定義します.モジュール結合度を低減します.つまり、外部Oracle DBを使用してJAVAデータを格納してもよいし、JDBC、iBATIS、JPAなどの他のフレームワークで記述してもよい.

  • 内部統制ないぶせいぎょ:オブジェクトライフサイクルの管理おぶじぇくとライフサイクルのかんり
    スプリングコンテナでオブジェクトのライフサイクルを管理します.
  • MVCモード:


    Web開発はユーザーインタフェースとビジネスロジックを分離する

  • モデルもでる:アプリケーションじょうほう/データしょり

  • 表示:ユーザーがプログラムを使用するインタフェース(Webページ)

  • コントローラ:ビジネスロジックとモデルのインタラクティブな仲裁.MVC 2制御サーバフロー

  • 写真の出所:http://blog.daum.net/gunsu0j/165

    Bean :


    bean:スプリングコンテナ内のオブジェクト
    annotaionを使用して、通常のオブジェクトをbeanとして登録できます.
    依存注入を行うためにはbeanにならなければならない.
    Springはbeanの依存性を管理する.

    IOC :


    IOC(Inversion of Control):オブジェクトを宣言するのではなく、オブジェクトを受信して使用します.
    例)
    /* 
    일반적인 제어권: 자기가 사용할 의존성은 자기가 만들어서 사용
    */
    @Service
    public class CarService {
    	private CarRepository carRepository = new CarRepository();
    }
    /*
    Inversion Of Control
    다른 누군가가 의존성을 밖에서 준다.(제어권의 역전)
    의존성을 주입해주는 일:Dependency Injection(일종의 IOC)
    */
    @Service
    public class CarService {
    	
        // CarRepository를 사용은 하지만 만들지는 않는다.
    	private CarRepository carRepository;
        
        /*
        생성자를 통해서 받아온다.
        따라서 의존성을 관리하는 일은 CarService가 하는 일이아니다. 누군가 밖에서 해주는 것이다.
        */
        public CarService(CarRepository carRepository){
        	this.carRepository = carRepository;
        }
    }

    AOP詳細:


    Concern:他のクラスと似た機能を持つ部分(メソッド、コード)
    コンサルティング:やるべきこと、機能
    Pointcut:どこに適用するか(Aクラス、Wメソッド)
    目標:各クラス(Aクラス、Bクラス、Cクラス)
    Join point:挿入点(実行方法時、フィールドから値を取得した場合)
    1黄色の機能を変更するには、クラスごとに変更する必要があり、メンテナンスが不便です.

    2このようにばらばらになった機能は展望で収集される.各ConcernにAsspectを作成し、どのクラスで使用するかを入力すると、次の図のようにAsspectがモジュール化されます.

    AOPを適用して実行時に実行します.
    コンパイル時間:ソースコード->exeコード
    実行時:.exeコード->実行

    ソース


    https://addio3305.tistory.com/32
    https://www.toolsqa.com/java/maven/how-to-install-maven-eclipse-ide/
    https://jerryjerryjerry.tistory.com/62
    https://velog.io/@max9106/Spring-AOP%EB%9E%80-93k5zjsm95
    https://velog.io/@max9106/Spring-IOCInversion-Of-Control-Bean-%EB%93%B1%EB%A1%9D%ED%95%B4%EB%B3%B4%EA%B8%B0