Springフレームワークの知識復習の一つ
Springフレームワーク復習の1つ
1 Springの基本
(1)Springの概要:
(2)springの主な利点:階層化アーキテクチャ.
(3)スプリングのメリット
2 Spring構成入門
(1)spring開発パッケージディレクトリ分析
(2)アプリケーションContext.xml構成制約と基本構成の紹介
3 Springの工場(コンテナ)ApplicationContextとBeanFactory
1 ApplicationContextファクトリの概要:
ApplicationContextインタフェースには2つのインプリメンテーションクラスがあります.C l a s s PathXmlApplicationContext:クラスパスの下(srcの下)にあるSpringプロファイルのロードFileSystemXmlApplicationContext:ローカルディスクの下Springのプロファイルのロード
2 BeanFactoryは時代遅れで、あまり話さない.
3 ApplicationContextとBeanFactoryの違い:
4 Springプロファイルの配布開発
5 SpringとサーブレットContextListenerリスナー
Springの4つのコアコンポーネントの特徴を簡単に説明します
1 Springの基本
(1)Springの概要:
<1>Spring javaSE/EE full-stack( ) 。
<2>Spring (IOC) (AOP),
<3>IOC DI:
* IOC(Inversion Of Control) : spring,
* DI(Dependency Injection ):
IOC ,spring ,spring 。
<4>Spring IOC
* dao
& :UserDaoImpl ud=new UserDaoImpl();
& :
UserDao ud=new UserDaoImpl();
: , , 。
OCP Open-Close Principle,
Open , close 。
* Spring :
Spring ( + + ) ,
UserDao ud=new UserDaoHibernateImpl();
, ,sprig 。
(2)springの主な利点:階層化アーキテクチャ.
, J2EE 。
JavaEE :
* WEB :springMVC
* :Bean (IOC)
* :Spring JDBC ,ORM
(3)スプリングのメリット
<1> ,
Spring , .
<2> AOP ( ,Servlet filter Action interceptor)
AOP , ,
<3>
, 。
<4>
Spring Junit4, Spring
<5>
Spring , Struts2,Hibernate,Mybatis,Quartz 。
<6> JavaEE API
Spring JavaEE API(JDBC,JavaMail, ), , API 。
2 Spring構成入門
(1)spring開発パッケージディレクトリ分析
* docs:API
* libs:jar
& :
<1>spring-core-4.2.4.RELEASE.jar --core
<2>spring-context-4.2.4.RELEASE.jar --context
<3>spring-beans-4.2.4.RELEASE.jar --beans
<4>spring-expression-4.2.4.RELEASE.jar --expression
& :
<1>com.springsource.org.apache.commons.logging-1.1.1.jar --logging
<2>com.springsource.org.apache.log4j-1.2.15.jar --log4j
* schema:
(2)アプリケーションContext.xml構成制約と基本構成の紹介
<1>
* :
spring-framework-4.2.4.RELEASE\docs\spring-framework-reference\html\xsd-configuration.html
* :
eclipse 。
<2> STS(Spring Tools Suite Spring ) XML ,Schema 。
spring-beans-4.2.xsd :
spring-framework-4.2.4.RELEASE\schema\beans\spring-beans-4.2.xsd
<3> xsd ?
* XSD ( XML Schemas Definition )XML , DTD 。
* XSD DTD :
& DTD , 。
& XML , , 。
* XML Schema(XSD ):
Schema XML , XML , XML 。
Schema XML , XML 。
<3> :
* Bean spring
:
class :
name : , ,
,
id : name ( ), ,
, name
* :
<4>
:
public interface TestDao {public void sayHello();}
public class TestDaoImpl implements TestDao{
@Override
public void sayHello() {
System.out.println("hello spring!");
}
}
:
<5>Spring IOC , 。
:
:
:
@Test
public void fun1() {
//1 -- xml src
ApplicationContext ac=new ClassPathXmlApplicationContext("cn/ieate/applicationContext.xml");
//2 user
User u = (User) ac.getBean("user");
//3 user
System.out.println(u);
}
:
& : UserFactory createUser user2 ,
&UserFactroy
public class UserFactory {
public static User createUser() {
System.out.println(" User");
return new User();
}
}
&
&
@Test
public void fun2() {
//1 -- xml src
ApplicationContext ac=new ClassPathXmlApplicationContext("cn/ithereate/applicationContext.xml");
//2 user
User u = (User) ac.getBean("user2");
//3 user
System.out.println(u);
}
:
& : UserFactory createUser2 user3 ,
& UserFactroy
public class UserFactory {
public User createUser2() {
System.out.println(" User");
return new User();
}
}
&
&
@Test
public void fun3() {
ApplicationContext ac = new ClassPathXmlApplicationContext("cn/itheima/b_create/applicationContext.xml");
User u = (User) ac.getBean("user3");
System.out.println(u);
}
<6>Bean scope
scope :
1 singleton( ): ,
:
2 prototype: , , , .
Struts2,ActionBean prototype , Action ,struts2
3 request: web ,Spring , request .
4 session: web ,Spring , session .
5 globalSession:
web , Porlet , Porlet , globalSession Session 。
Portlet Java Web ,Portlet request 。
<7>Bean
1 Bean init-method Bean 。
2 Bena destroy-method Bean
Bean 。
public class User {
private String name;
private Integer age;
//
public void init() {
System.out.println(" ----");
}
//
public void destroy() {
System.out.println(" ----");
}
}
<8>Spring Bean
1
name :
value :
index : ( , )
type :
:
public class Person {
private String name;
private Integer age;
public Person() {super();}
// 。
public Person(String name, Integer age) {
super();
this.name = name;
this.age = age;
}
:
2 set ( getter/setter )
public class User {
private String name;
public String getName() {return name;}
public void setName(String name) {this.name = name;}
private Integer age;
public void setAge(Integer age) {this.age = age;}
public Integer getAge() {return age;}
private Car c;
public Car getC() {return c;}
public void setC(Car c) {this.c = c;}
}
3 p
* : p xmlns:p="http://www.springframework.org/schema/p"
* -- p: p: -ref
* :
4 Spel(Spring Exepression Language)
* :name="yyy" value="#{xxx}"
* :
* : spring
spring user name
user5 name
* : Bean 。
5
tom
123
com.jdbc.mysql.Driver
root
234
3 Springの工場(コンテナ)ApplicationContextとBeanFactory
1 ApplicationContextファクトリの概要:
ApplicationContextインタフェースには2つのインプリメンテーションクラスがあります.C l a s s PathXmlApplicationContext:クラスパスの下(srcの下)にあるSpringプロファイルのロードFileSystemXmlApplicationContext:ローカルディスクの下Springのプロファイルのロード
2 BeanFactoryは時代遅れで、あまり話さない.
3 ApplicationContextとBeanFactoryの違い:
BeanFactory: getBean()
ApplicationContext: , applicationContext.xml 。
4 Springプロファイルの配布開発
:
:
ApplicationContext ac=
new ClassPathXmlApplicationContext("a/applicationContext.xml,b/applicationContext.xml");
:
5 SpringとサーブレットContextListenerリスナー
(1) : Spring IOC , applicationContext.xml bean
ApplicationContext ac=new ClassPathXmlApplicationContext("cn/iction/applicationContext.xml");
User u = (User) ac.getBean("user");
, , Spring .
:
spring , ServletContext , ,
ServletContext , ServletContextListener ,
ServletContext 。
:
org.springframework.web.context.ContextLoaderListener
contextConfigLocation
classpath:applicationContext.xml
Springの4つのコアコンポーネントの特徴を簡単に説明します
core --Spring
context-- Spring (applicationContext.xml )
bean --- applicationContext.xml
spel---
: core>context>bean>spel