生活随笔
收集整理的這篇文章主要介紹了
spring bean的创建,生命周期
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1. 初探spring
什么是spring
Spirng 是分層的Java se/ee應用full-stack(web層mvc dao層jdbc模板 業務事務管理)輕量級開源框架,以IoC(inverse of control :反轉和控制) 和
AOP(Aspect Oriented Programming: 面向切面編程)為內核。
還能整合開源世界 著名的第三方框架和類庫
spring發展歷程
1997年 EJB思想 。。。 2006年 ejb3.0
2017 5.0版本發布
spring的優勢
3.1 方便解耦,簡化開發(ioc創建dao層對象了)
3.2 aop面向切面編程
3.3 聲明式事務的支持(配置一片方法控制事務控制)
3.4 方便程序測試
3.5 方便集成各種優秀的框架
3.6 降低JavaEE api的使用難度
3.7 Java源碼時經典的學習范例
spring的體系結構
4.1 底層 核心控制器
beans 創建對象用的
core 核心
context spring的上下文
spEl spring el表達式
4.2 上一層
aop,aspects,instrumentation,messaging
spring快速入門
5.1 spring程序開發步驟
5.1.1 導入spring開發的基本坐標包
5.1.2 編寫Dao接口和實現類
5.1.3 創建spring核心配置文件(xml文件)
5.1.4 在spring配置文件中配置userdaoimpl
5.1.5 使用spring的api獲得bean實例 (創建applicationContext對象)
spring下載地址
https://repo.spring.io/release/org/springframework/spring/
2. spring bean的創建
2.1 idea創建maven依賴的項目
2.2 完成項目創建
2.3 配置pom.xml, 引入maven中的依賴關系(這里引入spring框架滴)
該文件用于管理:源代碼、配置文件、開發者的信息和角色、問題追蹤系統、組織信息、項目授權、項目的url、項目的依賴關系等等。事實上,在Maven世界中,project可以什么都沒有,甚至沒有代碼,但是必須包含pom.xml文件。
2.4 引入框架
<?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_02</artifactId> <!-- 項目名 --><version>1.0-SNAPSHOT</version><dependencies> <!-- 導入依賴關系 spring框架 --><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>5.0.10.RELEASE</version></dependency><dependency><groupId>junit</groupId> <!-- junit 用來測試@Test注解 --><artifactId>junit</artifactId><version>4.13</version></dependency></dependencies></project>
2.5 終于可以配置bean拉,啊啊啊
package com
.lovely
.dao
;public interface UserDao {public void save();
}
package com
.lovely
.dao
.impl
;import com
.lovely
.dao
.UserDao
;public class UserDaoImpl implements UserDao {public void save() {System
.out
.println("save running...");}}
- 創建spring核心配置文件applicationContext.xml 配置bean
<?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 http://www.springframework.org/schema/beans/spring-beans.xsd"><!-- 配置bean id為唯一標識
class為類所在的全路徑
1--><bean id
="userDao" class="com.lovely.dao.impl.UserDaoImpl"> </bean
></beans
>
package com
.lovely
.demo
;import com
.lovely
.dao
.UserDao
;
import org
.springframework
.context
.ApplicationContext
;
import org
.springframework
.context
.support
.ClassPathXmlApplicationContext
;public class UserDaoDemo {public static void main(String
[] args
) {ApplicationContext app
= new ClassPathXmlApplicationContext("applicationContext.xml");UserDao dao
= (UserDao
) app
.getBean("userDao");dao
.save();}
}
<!-- 工廠模式 靜態方法實例bean
--><bean id
="userDao" class="com.lovely.Factory.StaticFactory" factory
-method
="getUserDao"></bean
>
<!-- 工廠實例方法創建bean
--><bean id
="factory" class="com.lovely.Factory.DynamicFactory"></bean
><bean id
="userDao" factory
-bean
="factory" factory
-method
="getUserDao"></bean
>
2.6 bean的作用域標簽范圍
<bean id
="userDao" class="com.lovely.dao.impl.UserDaoImpl" scope
="singleton"></bean
><!-- crtl
+ d 快速賦值一行 scope
= singleton 單個對象 scope
= prototype 多例模式
-->
package com
.lovely
.test
;import com
.lovely
.dao
.UserDao
;import org
.junit
.Test
;
import org
.springframework
.context
.ApplicationContext
;
import org
.springframework
.context
.support
.ClassPathXmlApplicationContext
;public class SpringTest {@Testpublic void test1() {ApplicationContext app
= new ClassPathXmlApplicationContext("applicationContext.xml");UserDao userDao1
= (UserDao
) app
.getBean("userDao");UserDao userDao2
= (UserDao
) app
.getBean("userDao");System
.out
.println(userDao1
== userDao2
);}}
3. bean的生命周期
- bean對象的創建,初始化,容器銷毀,bean銷毀
package com
.lovely
.dao
.impl
;import com
.lovely
.dao
.UserDao
;public class UserDaoImpl implements UserDao {public UserDaoImpl() {System
.out
.println("user dao 創建了");}public void init() {System
.out
.println("user bean init...");}public void destroy() {System
.out
.println("user bean destory...");}
}
<bean id
="userDao" class="com.lovely.dao.impl.UserDaoImpl" init
-method
="init" destroy
-method
="destroy">
</bean
>
@Testpublic void test2() {ClassPathXmlApplicationContext app
= new ClassPathXmlApplicationContext("applicationContext.xml");UserDao dao
= (UserDao
) app
.getBean("userDao");System
.out
.println(dao
);app
.close();}
- 從容器的加載到對象的創建,初始化,容器銷毀,bean銷毀
總結
以上是生活随笔為你收集整理的spring bean的创建,生命周期的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。