Springベース


一、準備工作
1、ツールのEclipseとIDEAは全部できます。jdk、Tomcatは全部用意しています。
2、Springのjarダウンロードアドレス:
https://repo.spring.io/libs-release-local/org/springframework/spring/
3、アプリ Commonsシリーズjarパッケージのダウンロード先:
http://commons.apache.org/
4、JSTLバッグ
http://archive.apache.org/dist/jakarta/taglibs/standard/binaries/
5、Jackson開源包
https://mvnrepository.com/artifact/com.fasterxml.jackson.core
どのようなカバンを使うかは、これらのURLからダウンロードすればいいです。他のものに後で追加します。
二、入門ハロー ワールド
 
 
Spring基础_第1张图片
 
 
JEEプロジェクトを作成します。(IDEAプロジェクトを作成して、初心者はMavenモードを採用して、直接使用できます。Gradeには小さい穴があります。配置が必要です。)webapp-->WEB-INFフォルダの下で、libフォルダを作成して、上述のjarパッケージを見つけて、導入します。
ここにIDEAとEclipseを追加してjarを導入する方法です。
IDEA:
jarをlibに貼り付け、右クリックでAddを選択します。  as  Libraryオプション、完了しました。
Eclipse:
jarをlibに貼り付けるだけで使えます。
Springの特徴は階層であり、コードをより明確にし、管理が便利である。ここでは常用文字列を説明する必要がある。
よく使われるカバンの名前:serviceはビジネスロジック層で、daoはデータアクセス層で、controllerはコントローラ層で、configはweb、springなどの配置類のカバンで、pojoは普通のJavaBensです。
注:pojoパッケージのクラスには、いくつかのメンバー変数とこれらのメンバー変数に関するsetterとgetter方法しか含まれていません。
本題に入ります。プロジェクトのJavaフォルダ部分には、次のようなパッケージとクラスファイルが作成されます。
package dao;
public interface TestDao {
	public void sayHello();
}
package dao;

public class TestDaoImpl implements TestDao{

	@Override
	public void sayHello() {
		System.out.println("Hello World");
	}
	
}
プロファイルを作成します。


    
試験クラスの作成
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import dao.TestDao;

public class Test {

	public static void main(String[] args) {
		//   spring   
		@SuppressWarnings("resource")
		ApplicationContext appCon = new  ClassPathXmlApplicationContext("applicationContext.xml");
		TestDao tt=(TestDao)appCon.getBean("test");
		tt.sayHello();
	}

}
Testクラスを実行し、結果出力:
ハローワールド
原理:構成ファイルを読み込むと、それぞれの対応に従って作成されたインスタンスがSpring容器に保存され、getBeanを介してこのインスタンスオブジェクトを取得して動作します。ここでインターフェースオブジェクトを使ってインターフェースのサブオブジェクトを受信します。TestDaoImplオブジェクトを使って受信すれば、結果も同じですが、ここではできるだけこのような書き方をしています。原因は複雑です。興味があるなら自分で検索してもいいです。TestDaoImplが複数のインターフェースを実現すれば、ユーザーがウェブサイトで個人情報を確認するようになります。直接にデータベースのテーブルのすべてのユーザ情報を彼に見せる必要はない。いくつかの方法では、そのユーザ自身の情報だけを表示すればいいです。もちろん原因は必ずしもそうではない。
三、Springフレームの配置方法
1、xml配置
上記ハロー Worldの例はXML設定Beanの方法を使っていますが、プロジェクトに大量のBeanが必要な場合、クラス名を修正したいです。このクラス名を修正する以外に、XMLファイルにも駆けつけてください。ctrl+Fは対応する元のクラス名を見つけて修正します。もちろんこれはただの状況です。XML配置は今後のプロジェクトのアップグレード・メンテナンスに不利です。
2、Javaの設定
そのため、今は注釈で組み立てるのがオススメです。
宣言ビーンのコメント:
@Component
一般的なマークは、Beanは、特定の機能を割り当てていません。
@Repository
daoデータアクセス層にビーンと表示するための機能は@Componentと同じです。
@サービス
サービス業務用ロジック層をBeanとしてマークします。機能は@Componentと同じです。
@Controller
controllerコントローラ層にビーンと表示するための機能は@Componentと同じです。
ビーンの注釈を注入します。たとえば、クラスでメンバーObjectを宣言します。 obは、実用化を行わず、Spring容器はまず自分自身にobがあるかどうかを探します。一つも作られていないので、あるものは取り出して、現在のobに与えます。
@Autowired
機能は、いくつかのインスタンスオブジェクトを使用すると、get、setなどの方法が必要ではなく、この注釈を通じて、インスタンスオブジェクトを直接に現在のメンバー変数に付与する上で説明されている。ビームタイプで組み立てる
@Resource
@Autowired機能と同じで、名前によって注入を組み立てるという違いがあります。
@Qualfier
名前に合わせてBeanを組み立てる必要がある場合は、@Autowiredと一緒に使用します。この注釈は名前を指定するために使用します。
3、Javaで構成された例
package annotation.dao;

public interface TestDao {
	public void save();
}
package annotation.dao;

import org.springframework.stereotype.Repository;

@Repository("testDaoImpl")
public class TestDaoImpl implements TestDao{

	@Override
	public void save() {
		System.out.println("testDao save");
	}
}
package annotation.service;

public interface TestService {
	public void save();
}
package annotation.service;

import javax.annotation.Resource;
import org.springframework.stereotype.Service;
import annotation.dao.TestDao;

@Service("testServiceImpl")
public class TestServiceImpl implements TestService{
	
	@Resource(name="testDaoImpl")
	private TestDao testDao;

	@Override
	public void save() {
		// TODO Auto-generated method stub
		testDao.save();
		System.out.println("testService save");
	}
}
package annotation.controller;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import annotation.service.TestService;

@Controller
public class TestController {

	@Autowired
	private TestService testService;
	
	public void save() {
		testService.save();
		System.out.println("testController save");
	}
	
	
}
package annotation;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;

@Configuration
@ComponentScan("annotation")
public class ConfigAnnotation {

}
テストクラス:
package annotation;


import org.springframework.context.annotation.AnnotationConfigApplicationContext;

import annotation.controller.TestController;

public class TestAnnotation {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		AnnotationConfigApplicationContext appCon = new AnnotationConfigApplicationContext(ConfigAnnotation.class);
		TestController tc = appCon.getBean(TestController.class);
		tc.save();
		appCon.close();

	}

}