初期スプリング
28227 ワード
1.Springとは
SpringはRod Johnsonによって作成されたオープンソースフレームワークです.エンタープライズアプリケーション開発の複雑さを解決するために作成されました.
Springは基本的なJavaBeanを使って、以前はEJBでしかできなかったことを完成します.しかしSpringの用途はサーバ側の開発に限られない.単純性、テスト性、および緩和結合の観点から、どのJavaアプリケーションもSpringから利益を得ることができます.目的:企業応用開発の複雑性機能を解決する:基本的なJavaBeanをEJBの代わりに使用し、より多くの企業応用機能範囲を提供した:いかなるJava応用もjavabean(javaオブジェクト)を詰めるための容器フレームワークであり、中間層フレームワーク(万能ゴム)はStrutsとhibernateを接着して運用するなどの接続作用を果たすことができる.簡単に言えばSpringは軽量レベルの制御反転(IoC)と切面(AOP)向けの容器フレームである.
2.制御反転とは
制御反転(Inversion of control)はオブジェクト向けプログラミングにおける設計原則であり、コード間の結合を低減することができ、プログラム開発において、インスタンスの作成は呼び出し者によって管理されるのではなく、Springコンテナによって作成され、制御権はプログラムコードからSpringコンテナに移行し、制御権が反転する.第一歩:springIDEプラグインを追加し、関連依存性を構成する必要がある
SpringはRod Johnsonによって作成されたオープンソースフレームワークです.エンタープライズアプリケーション開発の複雑さを解決するために作成されました.
Springは基本的なJavaBeanを使って、以前はEJBでしかできなかったことを完成します.しかしSpringの用途はサーバ側の開発に限られない.単純性、テスト性、および緩和結合の観点から、どのJavaアプリケーションもSpringから利益を得ることができます.目的:企業応用開発の複雑性機能を解決する:基本的なJavaBeanをEJBの代わりに使用し、より多くの企業応用機能範囲を提供した:いかなるJava応用もjavabean(javaオブジェクト)を詰めるための容器フレームワークであり、中間層フレームワーク(万能ゴム)はStrutsとhibernateを接着して運用するなどの接続作用を果たすことができる.簡単に言えばSpringは軽量レベルの制御反転(IoC)と切面(AOP)向けの容器フレームである.
2.制御反転とは
制御反転(Inversion of control)はオブジェクト向けプログラミングにおける設計原則であり、コード間の結合を低減することができ、プログラム開発において、インスタンスの作成は呼び出し者によって管理されるのではなく、Springコンテナによって作成され、制御権はプログラムコードからSpringコンテナに移行し、制御権が反転する.第一歩:springIDEプラグインを追加し、関連依存性を構成する必要がある
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.example</groupId>
<artifactId>spring-study</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
<!-- Spring -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.2.3.RELEASE</version>
</dependency>
<!-- -->
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.2.3</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
</plugins>
</build>
</project>
ステップ2:プラグインSpringのxmlファイルApplications.xml<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
https://www.springframework.org/schema/beans/spring-beans.xsd">
</beans>
ステップ3:注入方式に依存してDuckとDuck 2クラスを作成するpackage frank;
public class Duck {
private String name;
private Integer age;
public String getName() {
return name;
}
public Integer getAge() {
return age;
}
public void setName(String name) {
this.name = name;
}
public void setAge(Integer age) {
this.age = age;
}
@Override
public String toString() {
return "Duck{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
package frank;
public class Duck2 {
private String name;
private Integer age;
public String getName() {
return name;
}
public Integer getAge() {
return age;
}
public void setName(String name) {
this.name = name;
}
public void setAge(Integer age) {
this.age = age;
}
public Duck2(String n, Integer a) {
this.name = n;
this.age = a;
}
@Override
public String toString() {
return "Duck{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
<!-- bean bean ,Spring bean id ,id bean
Spring id bean id, id
-->
<!-- , -->
<!-- -->
<bean id="bit" class="java.lang.String">
<constructor-arg value=" "/>
</bean>
<!-- (setter )-->
<!-- <bean class="java.lang.String"></bean>-->
<bean id="d1" class="frank.Duck">
<property name="name" value="LadyGaga"></property>
<property name="age" value="18"/>
</bean>
<!-- -->
<bean id="d2" class="frank.Duck2">
<constructor-arg name="n" value=" "/>
<constructor-arg name="a" value="2"/>
</bean>
テストのクラスを書くimport frank.Duck;
import frank.Duck2;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class Main {
public static void main(String[] args) {
//spring ApplicationContext ( Bean , )
// ClassPathXmlApplicationContext classpath , xml ( )
// .
ApplicationContext context = new
ClassPathXmlApplicationContext("applications.xml");
// bean (id) bean
String bit =(String) context.getBean("bit");
//String bit2= (String) context.getBean("java.lang.String#0");
System.out.println(bit);
//System.out.println(bit2);
// bean
String bit2 = context.getBean(String.class);
System.out.println(bit2);
Duck d1 = (Duck) context.getBean("d1");
System.out.println(d1);
Duck2 d2 = (Duck2) context.getBean("d2");
System.out.println(d2);
}
}