Spring(一)
29369 ワード
回顧する
Strutsとヒップホップは何ができますか?
専門用語の理解
コンポーネント/フレーム設計
オブジェクトを作成
Strutsとヒップホップは何ができますか?
Struts
Mvc
、 、 、 …
Hibernate
;
,
,
。
従来の開発モデル mvc ;
mvc :
Entity / dao / service / action
// 1.
class User{
}
//2. dao
class UserDao{
.. db
}
//3. service
class UserService{
UserDao userDao = new UserDao();
}
//4. action
class UserAction{
UserService userService = new UserService();
..
}
:
/user.action ----> Tomcat ( Action、Service、dao
:
1. ?
2.
action 【 】
service 【 】
dao 【 】
action
service
dao
3.
action service
service dao
=======================================================
:
spring !
, 、 !
Springフレーム専門用語の理解
コンポーネント/フレーム設計
, ; 。
: Struts
, 。
:Hibernate / Spring
コントロール反転Inversion on Control , IOC
, .
, dependency injection
:
, 【 】
,
, 【 set 】
AOP 。 , , 。
: 、 、 ;
概要Spring , 。
;Spring Struts, Spring hibernate
( ( ) )
Spring :
1) Spring Core spring : IOC ,
2) Spring Web Spring web 。
- struts , struts action spring
- spring mvc
3) Spring DAO Spring jdbc 【JdbcTemplate 】
4) Spring ORM spring orm :
hibernate ,【session】
spring hibernate
5)Spring AOP
6)SpringEE spring javaEE
開発ステップ spring :
3.0 , spring 【spring + 】 2.5 ;
3.0 , spring 【 】
( , !)
1) , jar :spring-framework-3.2.5.RELEASE
commons-logging-1.1.3.jar
spring-beans-3.2.5.RELEASE.jar bean
spring-context-3.2.5.RELEASE.jar spring
spring-core-3.2.5.RELEASE.jar spring
spring-expression-3.2.5.RELEASE.jar spring
5 jar , !
2) : applicationContext.xml
Spring :applicationContext.xml / bean.xml
:
spring-framework-3.2.5.RELEASE\docs\spring-framework-reference\htmlsingle\index.html
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd">
</beans>
3) Api
public class App {
// 1. IOC
@Test
public void testIOC() throws Exception {
//
// User user = new User();
// , spring IOC
Resource resource = new ClassPathResource("cn/itcast/a_hello/applicationContext.xml");
// (Bean ), IOC = + applicationContext.xml
BeanFactory factory = new XmlBeanFactory(resource);
//
User user = (User) factory.getBean("user");
System.out.println(user.getId());
}
//2. ( ) IOC
@Test
public void testAc() throws Exception {
// IOC
ApplicationContext ac = new ClassPathXmlApplicationContext("cn/itcast/a_hello/applicationContext.xml");
// bean
User user = (User) ac.getBean("user");
System.out.println(user);
}
}
オブジェクト作成の詳細/** * 1) : / * scope="singleton", , 【service/dao/ 】 * scope="prototype", ; 【Action 】 * * 2) ? * scope="prototype" , 。 * scope="singleton" ( ), bean, 。 * 3) * lazy-init="false" false, , * lazy-init="true" , * ( ) * 4) , / * init-method="init_user" 【 init_user , 】 * destroy-method="destroy_user" 【 destriy ,( )】 */
@Test
public void testIOC() throws Exception {
// IOC 【 , 】
ClassPathXmlApplicationContext ac = new ClassPathXmlApplicationContext("cn/itcast/a_hello/applicationContext.xml");
System.out.println("----- -----");
// bean
User user1 = (User) ac.getBean("user");
User user2 = (User) ac.getBean("user");
System.out.println(user1);
System.out.println(user2);
//
ac.destroy();
}
SpringIOC容器オブジェクトを作成
SpringIOC , spring 。
: &
IOC :
, :
1)
2)
3)
,
,
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
<!-- ############### ############### -->
<!-- 1. <bean id="user1" class="cn.itcast.b_create_obj.User"></bean> -->
<!-- 2. -->
<bean id="user2" class="cn.itcast.b_create_obj.User">
<constructor-arg index="0" type="int" value="100"></constructor-arg>
<constructor-arg index="1" type="java.lang.String" value="Jack"></constructor-arg>
</bean>
<!-- , "Jack" ; String s = new String("jack")-->
<bean id="str" class="java.lang.String">
<constructor-arg value="Jacks"></constructor-arg>
</bean>
<bean id="user3" class="cn.itcast.b_create_obj.User">
<constructor-arg index="0" type="int" value="100"></constructor-arg>
<constructor-arg index="1" type="java.lang.String" ref="str"></constructor-arg>
</bean>
<!-- 3. -->
<!-- # 3.1 , -->
<!-- -->
<bean id="factory" class="cn.itcast.b_create_obj.ObjectFactory"></bean>
<!-- user , factory -->
<bean id="user4" factory-bean="factory" factory-method="getInstance"></bean>
<!-- # 3.2 : -->
<!-- class factory-method “ ” -->
<bean id="user" class="cn.itcast.b_create_obj.ObjectFactory" factory-method="getStaticInstance"></bean>
</beans>
オブジェクト依存関係Spring , ? 【DI, 】
1)
2) set
3) p
4) ( )
5)
(一般的に)Setメソッド注入値<!-- dao instance -->
<bean id="userDao" class="cn.itcast.c_property.UserDao"></bean>
<!-- service instance -->
<bean id="userService" class="cn.itcast.c_property.UserService">
<property name="userDao" ref="userDao"></property>
</bean>
<!-- action instance -->
<bean id="userAction" class="cn.itcast.c_property.UserAction">
<property name="userService" ref="userService"></property>
</bean>
内部ベーン<!-- ############## bean############## -->
<bean id="userAction" class="cn.itcast.c_property.UserAction">
<property name="userService">
<bean class="cn.itcast.c_property.UserService">
<property name="userDao">
<bean class="cn.itcast.c_property.UserDao"></bean>
</property>
</bean>
</property>
</bean>
p名前空間注入属性値(最適化)<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
<!-- ############### ############### -->
<!-- : # p (spring3.0 ) -->
<bean id="userDao" class="cn.itcast.c_property.UserDao"></bean>
<bean id="userService" class="cn.itcast.c_property.UserService" p:userDao-ref="userDao"></bean>
<bean id="userAction" class="cn.itcast.c_property.UserAction" p:userService-ref="userService"></bean>
<!-- : <bean id="user" class="cn.itcast.c_property.User" > <property name="name" value="xxx"></property> </bean> -->
<!-- p -->
<bean id="user" class="cn.itcast.c_property.User" p:name="Jack0001"></bean>
</beans>
自動組立(了解)1. :autowire="byName"
IOC ,
<!-- ############### ############### -->
<bean id="userDao" class="cn.itcast.d_auto.UserDao"></bean>
<bean id="userService" class="cn.itcast.d_auto.UserService" autowire="byName"></bean>
<!-- “ ” : userAction , ioc -->
<bean id="userAction" class="cn.itcast.d_auto.UserAction" autowire="byName"></bean>
, bean autowire=”byName”
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd" default-autowire="byName"> ( )
<!-- ############### ############### -->
<bean id="userDao" class="cn.itcast.d_auto.UserDao"></bean>
<bean id="userService" class="cn.itcast.d_auto.UserService"></bean>
<bean id="userAction" class="cn.itcast.d_auto.UserAction"></bean>
</beans>
2. :autowire="byType"
IOC ; 。
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd" default-autowire="byType">
<!-- ############### ############### -->
<bean id="userDao" class="cn.itcast.d_auto.UserDao"></bean>
<bean id="userService" class="cn.itcast.d_auto.UserService"></bean>
<!-- : IOC -->
<bean id="userAction" class="cn.itcast.d_auto.UserAction"></bean>
<!-- : , <bean id="userService_test" class="cn.itcast.d_auto.UserService" autowire="byType"></bean> -->
</beans>
:
Spring ; 。
( )
注釈 spring IOC !
:
1) context
xmlns:context="http://www.springframework.org/schema/context"
2)
<context:component-scan base-package="cn.itcast.e_anno2"></context:component-scan>
3)
, ioc 。
, :
@Component IOC
@Repository @Component;
@Service @Component;
@Controller @Component;
@Resource
:
1) , , IOC , (DI)
2) XML 。
SpringとStrutsのフレームワークを統合Spring,
Struts, Action
Spring Struts ,
: struts action , spring !
Spring Hibernate :
【SSH :
Spring Struts
: action spring !
Spring Hibernate
: sessionFactory spring !
】
:
jar
1) struts .jar
2)spring-core jar
3)spring-web jar
spring-web-3.2.5.RELEASE.jar 【Spring 】
struts2-spring-plugin-2.3.4.1.jar 【Struts 】
:
4) XML
struts.xml 【struts action 】
bean.xml 【spring ioc 】
web.xml 【 : struts 】
【 spring ioc 】