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からダウンロードすればいいです。他のものに後で追加します。
二、入門ハロー ワールド
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フォルダ部分には、次のようなパッケージとクラスファイルが作成されます。
ハローワールド
原理:構成ファイルを読み込むと、それぞれの対応に従って作成されたインスタンスが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で構成された例
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からダウンロードすればいいです。他のものに後で追加します。
二、入門ハロー ワールド
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();
}
}