2019年最新Java企業框架前後臺大型項目實戰開發源碼/SSH/SSM視頻教程網盤下載

2019年最新Java企業框架前後臺大型項目實戰開發源碼/SSH/SSM視頻教程網盤下載39套Java架構師,高併發,高性能,高可用,分佈式,集羣,電商,緩存,微服務,微信支付寶支付,公衆號開發,java8新特性,P2P金融項目,程序設計,功能設計,數據庫設計,第三方支付,web安全,性能調優,設計模式,數據結構,併發編程,虛擬機,中間件,數據庫,項目實戰,大型分佈式電商項目實戰視頻教程

視頻課程包含:

39套包含:架構師,高併發,高性能,高可用,高可擴展,分佈式,集羣,電商,緩存,微服務,微信支付寶支付,公衆號開發,java8新特性,P2P金融項目,程序設計,功能設計,數據庫設計,架構設計,web安全,性能調優,設計模式,數據結構,項目實戰,工作流,程序調優,負載均衡,Solr集羣與應用,主從複製,中間件,全文檢索,任務調度,jvm虛擬機,Spring boot,Spring cloud,Docker,Kubernetes,jvm,Dubbo,Elasticsearch,ActiveMQ,Rocketmq,Rabbitmq,Kafka,Mycat,Spring,Git,Nosql,Mecached,Netty,Nio,Mina,Nutch,Webservice,Activiti,Shiro,Tomcat,Mysql,Oracle,Quartz,ELK Stack,zookeeper,Activiti大型分佈式電商實戰等高端視頻課程......

39套精品課程介紹:

1、39套精品是掌櫃最近整理出的最新課程,都是當下最火的技術,最火的課程,也是全網課程的精品;  

2、39套資源包含:全套完整高清視頻、完整源碼、配套文檔;

3、知識也是需要投資的,有投入纔會有產出(保證投入產出比是幾百上千倍),如果有心的朋友會發現,身邊投資知識的大都是技術經理或者項目經理,工資一般相對於不投資的也要高出很多;


lxfs.png

總目錄:39套Java架構師項目實戰高併發高性能高可用分佈式集羣緩存性能調優設計模式數據結構算法併發編程微服務架構虛擬機中間件數據庫微信支付公衆號大型電商視頻課程

161351i3qut3n3jqqeuqww.png

第一套:【系統學習】高併發大型電商詳情頁系統的大型高性能與高可用緩存架構實戰視頻教程

171602rl5w05uly6adaaym.png

171602bzcjb46s51ts45ll.png

171602rtyycce5exxil94e.png

171603rmi33bhbj3nmpain.png

171603q2k7u7gtqcuu7dj0.png

171603ea01kas45ksv1l0r.png

171603w6h08hhbfk6a8shm.png

171604gou94fukadn95uua.png

171604yt51tomjimbf08jr.png

171604b867jee8jrjyipee.png

第二套:【項目實戰】4套Spring Boot基礎到精通,實戰與原理分析,微服務架構應用視頻課程

172227vxss4j49tg7tg181.png

第01套.Spring boot入門到精通視頻課程

172227w68hsnx68ps6s2h8.png

172227qrn7r9ikkr2d11k0.png

第02套.SpringBoot全套教程2018年更新

172533wgsccyb2scbn7sgu.png

第03套.SpringBoot微服務架構應用

172533h44jbz405s8s580h.png

第04套.Spring Boot實戰與原理分析視頻課程

172638fuub0ujzk0ias2is.png

172639ayvce0c6uoivwg63.png

第三套:【微服務課】Spring Cloud微服務最新技術入門到精通視頻教程

172833kec2a2d2332qed4u.png

172827bgqwg2x22e4hjm6b.png

第四套:【微服務課】5套Docker基本概念與架構,Docker構建微服務,Docker到Kubernetes之技術實戰視頻課程

173112ywmll00wmcqhofqb.png

第01套、Docker基本概念與架構

173112ng0coc194kpcj44w.png

第02套、Docker雲計算與自動化實踐

173112qbaaa3cf7z7133da.png

第03套、Docker實戰系列課程

173113ueaeqetaee8hnk75.png

第04套、Docker構建微服務實戰

173113yrn5q7nvq8wv7zqz.png

第05套:Docker到Kubernetes技術系列實戰視頻教程

173113qpbw7o7o1l1utur7.png

第五套:【2套項目實戰】微信支付實戰,支付寶支付實戰,公衆號網頁支付實戰,web商城支付系列實戰視頻課程

174600v8ob0d7bn0n1b0rn.png

第01套.【項目實戰】微信支付實戰視頻課程—公衆號網頁支付實戰( Java版)

174600qg44geffd0klwgbn.png

第02套.【項目實戰】支付寶即時到賬web商城支付系列實戰視頻課程 (Java版)

174601ip47qrasyskf4ag3.png

第六套:【項目實戰】微信二次開發實戰JAVA版,微信驗證,微信公衆平臺,智能客服,微信菜單定製,人臉識別系統視頻課程

174807vwdhn6w2t0uu86hm.png

174807gs1i1u10vemm11zi.png

第七套:【併發編程】Java高併發編程,線程安全深入解析,鎖原理,同步容器,實戰講解視頻教程

175048y21mcz2bclx9hbmx.png

175048hx55or112ri9z1u9.png

175048qaresf2yjyz3xrt8.png

175048df7gqgvpkfzvfgjr.png

第八套:從無到有搭建中小型互聯網公司後臺服務架構與運維架構視頻課程

161459uv6vm9147199zi3t.png

161459bbj6ycb1s0chg0ap.png

161459c00guh77vuvxutvo.png

161459mat4oaaamow4z4tt.png

161500gfl3fn7oq7bflrxl.png

161500zrwr6v5gct636c6h.png

第九套:【系統學習】深入理解spring架構與原理從設計模式與原則理解Sring視頻課程

180524w0dpp9gyjohyhizi.png

第十套:【項目實戰】設計模式綜合項目(實戰),設計模式綜合應用的實戰案例視頻教程

180524xixt3w233m173272.png

180525qqurcggrkgoohah2.png

180525zikpy8uuyy011v8y.png

第十一套:【項目實戰】軟件系統功能設計(實戰)訓練(6個設計案例,真實項目功能需求)視頻教程

181050b5mdmo3yunlwlngy.png

181050fhelphfvohngvlcv.png

181050nuwwnuwaa8u0niu0.png

第十二套:【系統學習】Java數據結構和算法精講版(數組、棧、隊列、鏈表、遞歸、排序、二叉樹、紅黑樹、堆、哈希表)視頻課程

181127wyur6duyrrymhgyd.png

181127nakz2wbwv4kwhmbq.png

181127r4u00w58z0a50eqr.png

181127ommhcacoicce9mis.png

第十三套:【系統學習】Java虛擬機,深入JVM內核-原理,診斷與優化+內存模型+虛擬機原理

184148pgvvvpdqjnipvnrd.png

184148rwyw4l42b626b22s.png

184148qv16c3qoc685qc31.png

184149otybpavz4yayuay2.png

184149pkkpte88kedck3ue.png

184149etj1hehej6d15kxj.png

第十四套:【項目實戰】Java8新特性原理,高級進階實戰視頻教程

184314monrde8op8pf6f99.png

184314ecptptznpnmbaza7.png

第十五套:深入Java程序性能調優視頻(阿姆達爾定律、緩存組件、並行開發、線程池、JVM調優)

184456bc32u8pjjurs1o1r.png

184456fr0dkhu20d0660lp.png

第十六套:【系統學習】Elasticsearch基礎到深入,底層深入解析,結構化搜索,全文檢索高級案例實戰視頻課程

185331n7a6jjrvmv76xtmp.png

01.Elasticsearch基礎到深入,底層深入解析,結構化搜索,全文檢索高級案例實戰視頻課程-基礎篇

185331byloffxco7l3flm5.png

185332juwz0miz4e1fwuof.png

185332fwllwlksurpikl1j.png

185332kx0attxyxwisxlx0.png

02.Elasticsearch基礎到深入,底層深入解析,結構化搜索,全文檢索高級案例實戰視頻課程-高級篇

185353qvo04lx2x4vlp400.png

185354y8uuuosddab6akbm.png

185354zg1w1wdnw1g2ngm6.png

185354xdgepjpkpyyple3r.png

185354vdhmqr63nh0m02bb.png

185355bydhzbz7ldg9yd9u.png

185355zuanp9nw9zzayzch.png

第十七套:【中  間 件】3套ActiveMq,RocketMQ,RabbitMQ中間件架構,基礎到精通高級實戰視頻課程

205107lcbfkyksk13ny2a5.png

01.【中  間 件】ActiveMq中間件基礎到精通高級實戰視頻課程

185839e4tn2nky44h43nnv.png

185840v76oqqzg79bb9q7n.png

185840ujqjjdquvg8ehq8d.png

02.【中  間 件】JAVA-ACE架構師系列課程 Rocketmq

185841exl255llm5z2zks2.png

185841g32d27bbp70mzmzs.png

185841vg7qiab8ci88ic2j.png

03.【中  間 件】RabbitMQ中間件基礎到精通,消息訂閱視頻課程

185951liserksurvvvla4o.png

185951yttxppxpbjkp877p.png

第十八套:【中  間 件】Kafka原理剖析及實戰演練

185957sely5bex1sybs25c.png

第十九套:【數  據 庫】4套Mysql,從小白到大神,數據庫查詢優化,大型分佈式集羣,數據庫運維視頻課程

190555i1e9xe26ound29d9.png

01.【數據庫】Mysql從小白到大神

190556sb56lvqlls5zmz1q.png

02.【數據庫】MySQL高級大型分佈式集羣,主從複製,負載均衡,數據庫中間件視頻課程

190556krs0isi0m7o70wo5.png

190556cekgqzgo5bvziuui.png

190556gtekxtg4gdge9boo.png

03.【數據庫】MySQL數據庫查詢優化

190557xa3vxs8xzaqm99x8.png

04.【數據庫】MySQL數據庫運維全套視頻教程 阿里巴巴DBA講授

190557aqzuqjklegx3352q.png

第二十套:【數  據 庫】2套Oracle引航,深入,性能優化,高可用,海量數據庫設計視頻課程

191056qzgd8j89xr6adr99.png

191056d7s7dqed17ed7117.png

01.【數據庫】oracle五部曲

191057l6wcvtxcvjvxkkjd.png191057eyn6jz6phhvihund.png

191057v4kgya83f44rk3fy.png             191058sq444dmtzp8g08ns.png

191058uz0kydkdfy0pozb8.png

02.【數據庫】Oracle性能優化視頻教程

191058knia48aiaabx68t1.png

第二十一套:【數  據 庫】Mycat從基礎到精通,分佈式數據庫中間件視頻課程

192205inc9g14nd7d2qto2.png

第二十二套:【3套項目實戰】Apache Shiro權限框架實戰Springboot與Shiro整合+項目案例+權限設計實現視頻課程

192257zwlsllaml9fal92m.png

第03套.【項目實戰】Apache Shiro權限框架實戰+項目案例+權限設計實現視頻課程

192611p3guebxhskpsxbeo.png

192612eejh70ebr3umoz6e.png

第01套.SpringBoot與Shiro整合-權限管理實戰視頻

192611yxrea81y6hqvjqxp.png

第02套.Shiro基礎到精通,原理與架構視頻課程

192611a4jjxu5ye2clc1z9.png

192611eik7c7eudnku6lpg.png

第二十三套:【系統學習】spring+quartz的分佈式任務調度及源碼解析視頻課程

192846l1bet84eh0m4zfht.png

192846uj9vj85i4shx5fg5.png

第二十四套:【項目實戰】Dubbo分佈式系統架構-第三方支付項目的系統架構實戰視頻教程

193109b2dlexbbc85brrr8.png

193110v700pptfz5ziptbz.png

193110p1yd5wn79o26j5ga.png

第二十五套:【微服務課】基於支付系統場景的微服務架構的分佈式事務解決方案視頻課程

193507v4zniuiis1iafahe.png

193507zpx4xzihdq7iil4y.png

第二十七套:【項目實戰】日誌分析之ELK stack實戰視頻教程

193732qu588urfoonvr288.png

193732blv6ysjytr1j0vb3.png

第二十八套:【項目實戰】Zookeeper分佈式系統開發實戰視頻課程

193732jhihuufv7uhuiw5h.png

第二十九套:【項目實戰】瘋狂講義Activiti6.X工作流進階與項目實戰,Activiti整合Drools視頻課程

205908l3o36gva3ekv06og.png

205908wstziitaxsit3su9.png

205909hz7xu8xr9xzjji66.png

第三十套:【項目實戰】P2P互聯網金融平臺項目SSM+Redis+Mysql+Bootstrap+JQuery視頻課程

210249qjzm3mx3mmd8wzu4.png

第三十一套:【項目實戰】P2P網絡借貸平臺項目SSH+Redis+ActiveMQ+POI+Shiro+AngularJS+Nginx+Quartz視頻程

210249rw1au1zdcueya2o2.png

第三十三套:【項目實戰】大型分佈式電商系統redis+solr+Linux+nginx+springmvc+mybatis電商項目

210922mq4649od9x4fidz8.png

210922e4rw5zm4wzv4r54b.png

210922fkcycay9cxnwzt9y.png

210923t1fwxy5twmxwg8t8.png

210923ldrukhw9qlshiquk.png

210923s4efebpsndr4bp4b.png

第三十四套:【項目實戰】大型分佈式電商系統redis+solr+Linux+nginx+springmvc+mybatis電商項目

210702hnih1itn9p0pkk1r.png

210702pd613c56md3bdcxd.png

210702rrbzb54ur2vsw6so.png

第三十五套:【架構師課】站在架構師的角度架構屬於自己的項目框架(ORM、MVC、IOC框架)視頻課程

141003n2ydni6mp3rh0cxy.png

141003lhk48db4vxbjzgb4.png

141003o0006zh00rvz0yb0.png

第三十六套:【架構師課】架構師必備大規模高性能分佈式存儲系統設計與實現視頻課程

191835pq00qsn5d2y2ndln.png

第三十七套:【架構師課】Java高級系統培訓架構師課程148課時(階段一)(maven+spring+mybatis+git+memcached+activemq+nginx+內存調優)

141837q1h41d4d4idbi1a4.png

(01-07)Java架構師之Maven和Git課程

141838xr34rca8ge343p6u.png

(08-30)Maven+Git+Spring+Mybatis+X-gen基本業務功能塊構建

141838bzvti11iotivwxig.png

141838g0bph55pi0stklpl.png

(31-42)Java架構師之Ngnix入門到精通

142049qfh75y2n6mdhnnta.png

(43-57)Java架構師之Varnish入門到精通部分

142049r2gya2a2gyoqqiy2.png

(58-70)Memcached+Nginx+Varnish內存調優緩存機制部分

142049qfpqp2zd329pm2fk.png

(71-100)Java架構師之ActiveMQ消息存儲持久化+Spring+JMS+Queue隊列部分

142049sb6z6vypigoifk60.png

142050bnp9skkywiyw4ekw.png

(101-131)Java架構師之MongoDB入門到精通課程

142215k8ej5lre2tstlmte.png

142216ff5xbmd7wxsatamo.png

(132-142)Java架構師之MogileFS部分+Nginx+Memcached的集成課程

142216rrdrrdd1r×××p9v1.png

(143-148)Nginx+Varnish+ActiveMQ階段小結和整體部署

142216bp3e01e6c6teeuvp.png

第三十八套:【架構師課】Java高級系統培訓架構師課程116課時(階段二)(分佈式事物+單點登錄+高併發+性能優化+邏輯層處理+數據庫性能優化)

142519k1u3m2u7umtj31m2.png

(1-23)、分佈式架構和部署部分

142519bvkkpj8pdkminvvp.png

142519pfp44l70004blzsu.png

(24-50)、高併發和Web層的性能優化部分

142519ggggeagpssas11uj.png

(51-98)、邏輯層處理和性能優化部分

142519oybaabgpu2ymayfg.png

142520wmkshgg66c6ccgcd.png

142520e00qxs2z2s2er2rs.png

142520nnhu6otgoy007tgb.png

(99-110)、數據層處理和性能優化部分

142520m2ss172nc2soqnq8.png

(111-116)、數據庫性能優化

142521lbgc11cwub7zu21p.png

第三十九套:【架構師課】Java高級互聯網架構師系統培訓班課程(nginx+redis+zookeeper+activemq+storm+dubbo+netty+jvm+併發編程鎖+項目實戰)

141132xjosmwoxjo959wh8.png

141132wm5fami1f13sayuy.png

141133rkvmtzq20sydd4wv.png

高級互聯網架構師(源碼資料)

141356zbb3y3cx1jy7ticu.png

高級互聯網架構師(項目實戰)

141356yfh59mmyjxejmrrj.png

141355rluvublxbbj0jgje.png

lxfs.png





































































本系列作品持續更新,包括Spring,SpringMVC,Mybatis,SpringBoot,等流行框架,由於橫跨知識面積較廣,時間可能要久一些,希望有意向的讀者能夠加一下關注,收藏,謝謝大家的支持,來自一個程序員的敬禮

優雅的SSM框架

一、Spring框架簡介

1.Spring是一個開源的輕量級的應用開發框架。

2.目的是簡化企業級應用程序開發,降低侵入性(程序間的耦合性)。

3.Spring是以IOC(控制反轉)和AOP(面向切面)爲核心的輕量級容器。

4.Spring本質是管理軟件中的對象,即創建對象和維護對象之間的關係。

5.Spring對常用的API做了封裝和簡化

二、Spring的作用

1.管理對象(主要功能)

Spring提供了一個容器,幫助創建對象以及管理對象之間的依賴關係,降低了對象之間的耦合度,方便代碼的維護。

---什麼是Spring容器:Spring容器是spring框架中最核心的一個模塊,用於管理對象。

2.集成其他的框架

Spring可以把其他的框架集成起來,和其他的框架聯合使用

三、對Spring容器的操作—標題1

1.啓動Spring容器

導包:在pom.xml文件的<dependencies></dependencies>裏面配置<dependency</dependency>對

,進行導包

spring框架Maven依賴


2.用Spring容器創建對象(三種方法)

1.構造器new關鍵字

2.靜態工廠方法:getInstance()

//啓動Spring容器--默認情況下自動加載xml文件中的bean,根據每一個bean創建實例,且只創建一個對象簡單的配置applicationContext.xml文件<bean id="demo01" class="com.wyq.spring.SpringDemo02"></bean><!--使用靜態工廠方式創建對象factory-method 指定一個靜態方法Spring容器會調用這個這個靜態方法來創建對象--><bean id="calendar "class="java.util.Calendar" factory-method="getInstance"></bean>然後再java文件中用getBean()方法調用獲得對象ApplicationContext ac= new ClassPathXmlApplicationContext("applicationContext.xml");SpringDemo02demo02=ac.getBean("demo01",SpringDemo02.class);

3.使用實例工廠

<!--

使用實例化工廠創建對象

factory-bean:指定工廠bean的id

factory—method:指定一個方法,Spring容器會調用這個bean對應的方法創建對象

-->

<bean id="calendar "class="java.util.Calendar" factory-method="getInstance"></bean><bean id="date" factory-bean="calendar" factory-method="getTime"></bean>

四、Spring容器的設計模式—單例模式和模型模式

1.創建對象的參數配置:

<!--

scope:設置創建對象的參數

scope屬性:用來配置作用域,缺省值是singleton(即一個bean只創建一個實例)

如果值爲prototype(即每次都會創建一個新的實例)

默認:singleton單例模式(餓漢式)只創建一個對象在加載xml文件時就把所有能夠創建的對象都創建出來

prototype原型模式(懶加載),可以創建多個對象在要用的時候才加載對象

這裏產生一個問題--怎樣解決在創建對象是按需求創建對象。

--解決方法:

<!--

lazy-init:懶加載lazy-init="true"(default==false)調用的時候創建對象延時加載

在啓動Spring容器時不會自動創建對象

-->

-->

<bean id="stu" class="com.wyq.spring.Stu" scope="prototype"></bean>

2.對象的生命週期配置:

對象的生命週期:new--init---service---destory創建對象Spring容器自動創建,init方法<!--init-method屬性:創建emp對象後直接調用init()方法--><!--destroy-method:銷燬時執行的方法destory()//關閉Spring容器銷燬創建的對象只在單例模式下才會執行銷燬//在原型模式下是不會銷燬對象--><bean id="emp" class="com.wyq.spring.Emp" init-method="init" destroy-method="destory" scope="prototype"></bean>

3.對象的銷燬:

對象的銷燬 關閉Spring容器銷燬對象 關閉Spring容器的方法:

((ClassPathXmlApplicationContext)applicationContext).close();

五、Spring對於對象的解耦操作 IOC

1.IOC(控制反轉):

IOC:spring的核心---控制反轉 由容器來管理對象之間的依賴關係

DI:依賴注入:容器通過調用對象提供的set方法或者構造器來建立依賴關係。

IDC是目標 DI是手段

2.IOC注入方式:set注入、構造器、自動裝載

1.Set注入:


配置文件

<!--

property:特性屬性

注入:ref:連接對應id的bean創建對象指向id值id值是唯一的

怎麼注入:property元素使用set方法來注入依賴

怎麼調用set方法??把name的屬性值首字母大寫並轉化爲對應的方法名setA

該setA和B.class裏面的setA方法名一樣這樣就找到了相對應的方法

-->

<bean id="a" class="com.wyq.test.A"></bean><bean id="b" class="com.wyq.test.B"><property name="a"ref="a"></property></bean>

A類

public class A {publicA(){System.out.println("A --- A");}public voidf1(){System.out.println("A --- f1");}}

B類

public class B {private A a;publicB(){System.out.println("B -- B");}public voidsetA(A a) {this.a = a;}public voidexecute(){a.f1();}}

測試類

@Testpublic void test01(){ApplicationContext applicationContext= new ClassPathXmlApplicationContext("applicationContext.xml");applicationContext.getBean("b",B.class).execute();}

set注入的使用步驟:提供set方法-----配置<property>元素的屬性 name, ref, value

2.構造器注入:

配置文件

<!--

構造器注入:

1.添加對應的構造方法

2.配置constructor-arg元素

-->

<bean id="m" class="com.wyq.test02.Man"></bean><bean id="w" class="com.wyq.test02.Woman"></bean><bean id="person" class="com.wyq.test02.Person"><constructor-arg index="0" ref="m"></constructor-arg><constructor-arg index="1" ref="w"></constructor-arg></bean>

Peson類

public class Person{private Man man;private Woman woman;Public Person(){System.out.println("person");}public Person (Manman,Womanwoman){this.man=man;this.woman=woman;}public void execute(){man.m();woman.w();}}

Man類

public class Man{public Man(){System.out.println("m");}public void m(){System.out.println("man---f");}}

Woman類

public class Woman{public Woman(){System.out.println("w");}public void w(){System.out.println("woman---f");}}

@Testpublic void test02(){ApplicationContext applicationContext= new ClassPathXmlApplicationContext("applicationContext.xml");applicationContext.getBean("person",Person.class).execute();}

3.自動裝配:

配置文件

<!--

自動裝配 autowire:不常用

byName:通過自動調用set方法完成調用,底層的實現是set注入,

根據id查找並將id的首字母大寫,找到相應的set方法,找到唯一的對象

byType:

constructor:

default:

-->

<bean id="teacher" class="com.wyq.test03.Teacher"></bean><bean id="student" class="com.wyq.test03.Student" autowire="byName"></bean>

Teacher類

public class Teacher {publicTeacher(){}public voidteach(){System.out.println("teacher -- teach");}}

Student類

public class Student {privateTeacher teacher;public voidsetTeacher(Teacher teacher){this.teacher = teacher;}public voidexecute(){teacher.teach();}}

@Testpublic void test03(){ApplicationContext applicationContext = newClassPathXmlApplicationContext("applicationContext.xml");applicationContext.getBean("student", Student.class).execute();}

3.Spring的參數注入和基於註解的組件掃描

1.參數注入:依賴於getter和setter方法

1.getter、setter方法:

<!--

根據<property>標籤裏面的name屬性找到對應的set方法,然後將標籤裏面的value的值賦值給相應的屬性

實際上name屬性的值對應的就是類中的屬性的引用

<value/>元素可以通過字符串指定屬性或構造器參數的值,也可以通過value屬性指定基本值

1.給參數賦值

2.給集合賦值 list:<list> set:<set> map:<map> properties:<props>

-->

<bean id="value" class="com.wyq.test04.ValueBean"><!--1.給參數賦值--> <property name="age" value="13"></property> <property name="name" value="www"></property> <!--2.給集合賦值--> <property name="list"> <list> <value>張三</value> <value>李四</value> <value>王五</value> </list> </property> <property name="set"> <set><value>321</value> <value>534</value> <value>4354</value> </set></property> <property name="map"> <map> <entry key="name" value="李四"></entry> <entry key="sex" value="男"></entry> <entry key="age" value="43"></entry> </map> </property> <property name="properties"> <props> <prop key="name">張三</prop> <prop key="age">23</prop> </props> </property></bean>

/**

* 給基本數據注入賦值

*/

public class ValueBean {//給基本數據類型注入值 int age; //給字符串注入值 String name; //給list集合注入值 private List<String> list; //給set集合注入值 private Set<String> set; //給map集合注入值 private Map<String,String> map; //給Properties注入值 private Properties properties; getter(); setter(); toString();}

/**

* 測試參數注入

*/

@Testpublic void test04(){ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml"); ValueBean value = applicationContext.getBean("value", ValueBean.class);System.out.println(value);}

2.引用注入:

<!--

引用注入

設置id,根據id找相應的內容,<util:list>相當於一個對象

-->

<util:list id="list1"><value>1</value> <value>2</value><value>3</value> <value>4</value></util:list><util:properties id="pro"><prop key="name">www</prop> <prop key="sex">m</prop> <prop key="age">33</prop></util:properties><bean id="value2" class="com.wyq.test04.ValueBean"> <property name="list" ref="list1"></property> <property name="properties" ref="pro"></property></bean>

讀取properties文件中的配置內容

<!--

讀取properties文件

classpath屬性: properties文件對應的路徑,一般直接寫配置的名稱和類型

讀取文件的內容返回properties對象

1.創建properties文件

2.配置xml文件

3.啓動spring容器獲得properties對象

-->

<util:properties id="pro2" location="classpath:config.properties"></util:properties>

3.Spring表達式:

<!--

spring表達式 #{}

通過Spring表達式獲取properties文件中的值向對象中的屬性注入值

-->

<util:properties id="pro2" location="classpath:config.properties"></util:properties><bean id="propertiesBean" class="com.wyq.test04.PropertiesBean"><property name="name" value="#{pro2.name}"></property> <property name="age" value="#{pro2.age}"></property> <property name="sex" value="#{pro2.sex}"></property></bean>

//測試用的類

public class PropertiesBean {private String name; private String age;private String sex; public void setAge(String age) { this.age = age; }public void setName(String name) { this.name = name; } public void setSex(String sex) { this.sex = sex; } @Override public String toString() { return "properties name="+name+" age="+age+" sex="+sex; }}

2.註解掃描:減少xml文件的書寫量

1.註解掃描:

/**

* 註解掃描 組件掃描

* 什麼是組件掃描:指定一個包路徑,Spring會自動掃描包及其子包所有的組件類

* 當發現組件定義前有特定的註解標記時,

* 就將該組件納入到Spring容器,等價於原有XML配置中的<bean>定義功能

* 組件掃描可以替代大量XML配置的<bean>定義

*

常用註解


2.註解步驟及常用註解:

<!--

註解的第一步

1.打開spring註解掃描

base-package:指定要掃描的包,Spring會自動掃描該包以及其子包的路徑

如果該包下面有特定的註解,則Spring容器會將其納入容器進行管理,相當於配置一個bean類

當一個組件在掃描掃描過程中被檢測到時,會生成一個默認id值,

默認id爲小寫開頭的類名,也可以在註解標記中自定義id,

-->

<context:component-scan base-package="com.wyq.test05"></context:component-scan>

----註解實例:

@Scope("prototype")//註解成原型模式 不加這個註解默認是單例模式

@Component("emp")//創建對象的註解 ("emp")表示自定義的id

@Lazy(true)//懶加載的註解

public class Emp {private Dept dept; @Resource(name = "dept") //具有依賴關係的Bean對象的註解 public void setDept(Dept dept) {System.out.println("set依賴注入---"+dept); this.dept = dept; }//1.使用組件掃描,首先需要在XML配置中指定掃描路徑 public Emp(){System.out.println("emp --- 組件掃描"); } //2.當一個組件在掃描過程中被檢測到時,會生成一個默認id值, //默認id爲小寫開頭的類名,也可以在註解標記中自定義id, //3.開啓Spring容器 根據id獲取到相應的對象@Override public String toString() { return "emp 組件掃描"; }@PostConstruct //註解生成初始化方法 public void init(){System.out.println("init 方法 初始化"); } @PreDestroy //註解生成銷燬方法 public void destory(){ /** * 原型模式下不能進行調用銷燬方法* 單例模式下可以進行調用 */ System.out.println("銷燬的方法"); }}

/**

*指定依賴注入的關係

*/

@Component("dept")//將類添加進Spring進行管理

public class Dept {public Dept(){ System.out.println("dept -- dept"); }@Override public String toString() { return "dept 的toString方法"; }}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章