<!-- 加上這一條才能使AspectJ生效 -->
<aop:aspectj-autoproxy></aop:aspectj-autoproxy>
<aop:aspectj-autoproxy></aop:aspectj-autoproxy>
2017-12-27
租房子的例子少了依賴注入的說(shuō)明,我覺(jué)得可以把租房子時(shí)給的錢看成是注入,注入給中介,注入成功后中介(容器)把房子鑰匙(對(duì)象)給你,然后你就可以用鑰匙開(kāi)門進(jìn)去住了。這樣更完整些。
2017-12-27
怪不得這老師的收費(fèi)課賣相不好。
講課一點(diǎn)責(zé)任心都沒(méi)
敷衍潦草
真浪費(fèi)時(shí)間
講課一點(diǎn)責(zé)任心都沒(méi)
敷衍潦草
真浪費(fèi)時(shí)間
2017-12-26
<aop:pointcut expression="execution(* com.imooc.aop.schema.advice.biz.*Biz.*(..))" id="moocPointcut" />
其中,execution(* com 的 * 和 com之間有空格的~!
其中,execution(* com 的 * 和 com之間有空格的~!
2017-12-26
可以把前兩節(jié)學(xué)的@qualifier放到這個(gè)地方,在s1前加上注解@qualifier(“stringStore”)
這樣的話就確定要加載的bean了,不會(huì)報(bào)錯(cuò)
視頻里的做法是把bean的類型唯一,因?yàn)锧autowired注解在沒(méi)有指定的時(shí)候默認(rèn)byType,類型唯一就不會(huì)報(bào)錯(cuò)了。
當(dāng)然這里個(gè)人還是推薦用qualifier確定bean比較好。
這里也希望評(píng)論區(qū)也能多一些有用的信息。
這樣的話就確定要加載的bean了,不會(huì)報(bào)錯(cuò)
視頻里的做法是把bean的類型唯一,因?yàn)锧autowired注解在沒(méi)有指定的時(shí)候默認(rèn)byType,類型唯一就不會(huì)報(bào)錯(cuò)了。
當(dāng)然這里個(gè)人還是推薦用qualifier確定bean比較好。
這里也希望評(píng)論區(qū)也能多一些有用的信息。
從上面的例子也印證了我上面的總結(jié)的內(nèi)容:
1、凡是子類及帶屬性、方法的類都注冊(cè)Bean到Spring中,交給它管理;
2、@Bean 用在方法上,告訴Spring容器,你可以從下面這個(gè)方法中拿到一個(gè)Bean
1、凡是子類及帶屬性、方法的類都注冊(cè)Bean到Spring中,交給它管理;
2、@Bean 用在方法上,告訴Spring容器,你可以從下面這個(gè)方法中拿到一個(gè)Bean
2017-12-25
2、一類是注冊(cè)Bean,@Component , @Repository , @ Controller , @Service , @Configration這些注解都是把你要實(shí)例化的對(duì)象轉(zhuǎn)化成一個(gè)Bean,放在IoC容器中,等你要用的時(shí)候,它會(huì)和上面的@Autowired , @Resource配合到一起,把對(duì)象、屬性、方法完美組裝。
意思是@Bean明確地指示了一種方法,什么方法呢——產(chǎn)生一個(gè)bean的方法,并且交給Spring容器管理;從這我們就明白了為啥@Bean是放在方法的注釋上了,因?yàn)樗苊鞔_地告訴被注釋的方法,你給我產(chǎn)生一個(gè)Bean,然后交給Spring容器,剩下的你就別管了
意思是@Bean明確地指示了一種方法,什么方法呢——產(chǎn)生一個(gè)bean的方法,并且交給Spring容器管理;從這我們就明白了為啥@Bean是放在方法的注釋上了,因?yàn)樗苊鞔_地告訴被注釋的方法,你給我產(chǎn)生一個(gè)Bean,然后交給Spring容器,剩下的你就別管了
2017-12-25
二、注解分為兩類:
1、一類是使用Bean,即是把已經(jīng)在xml文件中配置好的Bean拿來(lái)用,完成屬性、方法的組裝;比如@Autowired , @Resource,可以通過(guò)byTYPE(@Autowired)、byNAME(@Resource)的方式獲取Bean;
1、一類是使用Bean,即是把已經(jīng)在xml文件中配置好的Bean拿來(lái)用,完成屬性、方法的組裝;比如@Autowired , @Resource,可以通過(guò)byTYPE(@Autowired)、byNAME(@Resource)的方式獲取Bean;
2017-12-25
一、Bean是啥
1、Java面向?qū)ο?,?duì)象有方法和屬性,那么就需要對(duì)象實(shí)例來(lái)調(diào)用方法和屬性(即實(shí)例化);
2、凡是有方法或?qū)傩缘念惗夹枰獙?shí)例化,這樣才能具象化去使用這些方法和屬性;
3、規(guī)律:凡是子類及帶有方法或?qū)傩缘念惗家由献?cè)Bean到Spring IoC的注解;
4、把Bean理解為類的代理或代言人(實(shí)際上確實(shí)是通過(guò)反射、代理來(lái)實(shí)現(xiàn)的),這樣它就能代表類擁有該擁有的東西了
5、我們都在微博上@過(guò)某某,對(duì)方會(huì)優(yōu)先看到這條信息,并給你反饋,那么在Spring中,你標(biāo)識(shí)一個(gè)@符
1、Java面向?qū)ο?,?duì)象有方法和屬性,那么就需要對(duì)象實(shí)例來(lái)調(diào)用方法和屬性(即實(shí)例化);
2、凡是有方法或?qū)傩缘念惗夹枰獙?shí)例化,這樣才能具象化去使用這些方法和屬性;
3、規(guī)律:凡是子類及帶有方法或?qū)傩缘念惗家由献?cè)Bean到Spring IoC的注解;
4、把Bean理解為類的代理或代言人(實(shí)際上確實(shí)是通過(guò)反射、代理來(lái)實(shí)現(xiàn)的),這樣它就能代表類擁有該擁有的東西了
5、我們都在微博上@過(guò)某某,對(duì)方會(huì)優(yōu)先看到這條信息,并給你反饋,那么在Spring中,你標(biāo)識(shí)一個(gè)@符
2017-12-25
Spring Aware的目的是為了讓Bean獲得Spring容器的服務(wù)。因?yàn)锳pplicationContext接口集成了MessageSource接口、ApplicationEventPublisher接口和ResourceLoader接口,因此當(dāng)Bean繼承自ApplicationContextAware的時(shí)候就可以得到Spring容器的所有服務(wù)。
2017-12-25
xml注解,javaconfig注解類,以及spring常用的注解是三個(gè)不同的東西
2017-12-23
pointcut()方法標(biāo)記注解為@Pointcut,并且execution為表示在執(zhí)行pointcut方法時(shí)調(diào)用以biz為后綴的包下邊以Biz為后綴的所有的類中的方法。
所有在aspect(切面)中為統(tǒng)一方法標(biāo)記為@Before,@AfterReturning等時(shí),直接將ececution寫為pointcut()即可。這樣在單元test中測(cè)試時(shí)就直接使用getBean獲取以biz為后綴的包下邊以Biz為后綴的的bean,進(jìn)而調(diào)用該bean下邊的方法。
所有在aspect(切面)中為統(tǒng)一方法標(biāo)記為@Before,@AfterReturning等時(shí),直接將ececution寫為pointcut()即可。這樣在單元test中測(cè)試時(shí)就直接使用getBean獲取以biz為后綴的包下邊以Biz為后綴的的bean,進(jìn)而調(diào)用該bean下邊的方法。
2017-12-23
Id:在整個(gè)ioc容器中這個(gè)bean的唯一標(biāo)示
Class:這個(gè)bean的實(shí)現(xiàn)類
Scope:bean的范圍,作用域
Cons...:構(gòu)造器的參數(shù) 設(shè)值注入
Properties:屬性 構(gòu)造注入
Auto..:自動(dòng)裝載
Lazy...:懶加載模式
Init...:初始化和銷毀方法
Class:這個(gè)bean的實(shí)現(xiàn)類
Scope:bean的范圍,作用域
Cons...:構(gòu)造器的參數(shù) 設(shè)值注入
Properties:屬性 構(gòu)造注入
Auto..:自動(dòng)裝載
Lazy...:懶加載模式
Init...:初始化和銷毀方法
2017-12-23