成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

spring 入門 2 自動(dòng)裝配和aop

JasinYip / 1015人閱讀

摘要:使用注解配置一步驟為主配置文件引入新的命名空間約束導(dǎo)入約束開(kāi)啟使用注解代理配置文件在中指定掃描包下所有類的注解掃描時(shí)會(huì)掃描指定包下的所有子孫包在類中使用注解完成配置等二將對(duì)象注冊(cè)到容器將注冊(cè)到容器中,相當(dāng)于層層層三修改對(duì)象的作用范

使用注解配置spring

一、步驟

1.為主配置文件引入新的命名空間(約束)
導(dǎo)入spring-context-4.2.xsd schema約束

2.開(kāi)啟使用注解代理配置文件
// 在applicationContext.xml中
// 指定掃描cn.zhli13.bean包下所有類的注解
// 掃描時(shí)會(huì)掃描指定包下的所有子孫包

3.在類中使用注解完成配置
// @Componet等

二、將對(duì)象注冊(cè)到容器

// 將user注冊(cè)到spring容器中,相當(dāng)于
@Componet("user")
@Service("user") // service層
@Controller("user") // web層
@Repository("user") // dao層

三、修改對(duì)象的作用范圍

// 指定對(duì)象的作用域
@Scope(scopeName="prototypo") // 非單例模式

四、值類型注入

// 1.通過(guò)反射的field賦值,破壞了封裝性
@Value("tom")
private String name;
// 2.通過(guò)set方法賦值,推薦使用
@Value("tom")
public void setName(String name) {
    this.name = name;
}

五、引用類型注入

@Autowired // 自動(dòng)裝配
// 問(wèn)題:如果匹配多個(gè)類型一致的對(duì)象,將無(wú)法選擇具體注入哪一個(gè)對(duì)象
@Qualifier("car2")// 使用@Qualifier注解告訴spring容器自動(dòng)裝配哪個(gè)名稱的對(duì)
private Car car;

六、初始化、銷毀方法

@PostConstruct // 在對(duì)象創(chuàng)建后調(diào)用,xml配置中的init-method
public void init () {
    System.out.println("init");
}
@PreDestory // 在對(duì)象銷毀之前調(diào)用,xml配置中的destory-method
public void destory () {
    System.out.println("destory");
}
spring與junit整合測(cè)試

一、導(dǎo)包

額外導(dǎo)入


二、配置注解

// 幫我們創(chuàng)建容器
@RunWith("SpringJunit4ClassRunner")
// 指定創(chuàng)建容器時(shí)使用哪個(gè)配置文件
@ContextConfiguration("classpath:applicationContext.xml")
public class Demo {
    // 將名為user的對(duì)象注入到變量u中
    @Resource(name="user")
    private User u;
}

三、測(cè)試

@Test
public void fun1() {
    System.out.println(u);
}
spring中的aop

一、概念

aop思想:橫向重復(fù)、縱向抽取
aop概念:spring能夠?yàn)槿萜髦泄芾淼膶?duì)象生成動(dòng)態(tài)代理

二、spring實(shí)現(xiàn)aop的原理

1.動(dòng)態(tài)代理(優(yōu)先)
    被代理對(duì)象必須要實(shí)現(xiàn)接口,才能產(chǎn)生代理對(duì)象.如果沒(méi)有接口將不能使用動(dòng)態(tài)代理技術(shù)
2.cglib代理(沒(méi)有接口)
    第三方代理技術(shù),cglib代理.可以對(duì)任何類生成代理.代理的原理是對(duì)目標(biāo)對(duì)象進(jìn)行繼承代理. 如果目標(biāo)對(duì)象被final修飾.那么該類無(wú)法被cglib代理.

三、aop名詞學(xué)習(xí)

JoinPoint(連接點(diǎn)):目標(biāo)對(duì)象中,所有可以增強(qiáng)的方法
Pointcut(切入點(diǎn)):目標(biāo)對(duì)象,已經(jīng)增強(qiáng)的方法
Adice(通知/增強(qiáng)):被增強(qiáng)的代碼
Target(目標(biāo)對(duì)象):被代理的對(duì)象
Weaving(織入):將通知應(yīng)用到切入點(diǎn)的過(guò)程
Proxy(代理):將通知織入到目標(biāo)對(duì)象之后,形成代理對(duì)象
aspect(切面):切入點(diǎn) + 通知  
spring aop的使用

一、導(dǎo)包

// spring的aop包
spring-aspects-4.2.4.RELEASE.jar
spring-aop-4.2.4.RELEASE.jar
// spring需要第三方aop包
com.springsource.org.aopalliance-1.0.0.jar
com.springsource.org.aspectj.weaver-1.6.8.RELEASE.jar

二、準(zhǔn)備目標(biāo)對(duì)象

public class UserServiceImpl implements UserService {
    @Override
    public void save() {
        System.out.println("保存用戶!");
    }
    @Override
    public void delete() {
        System.out.println("刪除用戶!");
    }
    @Override
    public void update() {
        System.out.println("更新用戶!");
    }
    @Override
    public void find() {
        System.out.println("查找用戶!");
    }
}

三、準(zhǔn)備通知

// 1.使用注解方式
// 表示該類是一個(gè)通知類
@Aspect
public class MyAdvice {
    @Pointcut("execution(* cn.zhli13.service.*ServiceImpl.*(..))")
    public void pc(){}
    //前置通知
    //指定該方法是前置通知,并制定切入點(diǎn)
    @Before("MyAdvice.pc()")
    public void before(){
        System.out.println("這是前置通知!!");
    }
    //后置通知
    @AfterReturning("execution(* cn.zhli13.service.*ServiceImpl.*(..))")
    public void afterReturning(){
        System.out.println("這是后置通知(如果出現(xiàn)異常不會(huì)調(diào)用)!!");
    }
    //環(huán)繞通知
    @Around("execution(* cn.itcast.zhli13.*ServiceImpl.*(..))")
    public Object around(ProceedingJoinPoint pjp) throws Throwable {
        System.out.println("這是環(huán)繞通知之前的部分!!");
        Object proceed = pjp.proceed();//調(diào)用目標(biāo)方法
        System.out.println("這是環(huán)繞通知之后的部分!!");
        return proceed;
    }
    //異常通知
    @AfterThrowing("execution(* cn.zhli13.service.*ServiceImpl.*(..))")
    public void afterException(){
        System.out.println("出事啦!出現(xiàn)異常了!!");
    }
    //后置通知
    @After("execution(* cn.itcast.zhli13.*ServiceImpl.*(..))")
    public void after(){
        System.out.println("這是后置通知(出現(xiàn)異常也會(huì)調(diào)用)!!");
    }
}
// 2.使用xml配置
// 移除上述通知類的注解就是xml配置的通知類

四、配置進(jìn)行織入,將通知織入目標(biāo)對(duì)象中

// 1.使用注解配置  







// 2.使用xml配置







    
    
    
        
        
        
        
        
        
        
        
        
        
    

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/76547.html

相關(guān)文章

  • 慕課網(wǎng)_《Spring入門篇》學(xué)習(xí)總結(jié)

    摘要:入門篇學(xué)習(xí)總結(jié)時(shí)間年月日星期三說(shuō)明本文部分內(nèi)容均來(lái)自慕課網(wǎng)。主要的功能是日志記錄,性能統(tǒng)計(jì),安全控制,事務(wù)處理,異常處理等等。 《Spring入門篇》學(xué)習(xí)總結(jié) 時(shí)間:2017年1月18日星期三說(shuō)明:本文部分內(nèi)容均來(lái)自慕課網(wǎng)。@慕課網(wǎng):http://www.imooc.com教學(xué)示例源碼:https://github.com/zccodere/s...個(gè)人學(xué)習(xí)源碼:https://git...

    Ververica 評(píng)論0 收藏0
  • spring入門指南

    摘要:裝配提供了三種裝配機(jī)制在中進(jìn)行顯示配置在中進(jìn)行顯示配置隱式的發(fā)現(xiàn)機(jī)制和自動(dòng)裝配機(jī)制。表示該類是一個(gè)組件,將自動(dòng)創(chuàng)建該組件實(shí)例,表示注入組件實(shí)例,和功能類似,和功能類似,但和是規(guī)范中提供的注解。 基本原理 spring的基礎(chǔ)是IOC和DI,其實(shí)IOC和DI是對(duì)同一件事從不同的方面進(jìn)行描述的,兩者在spring中是同一件事務(wù)。 IOC:控制反轉(zhuǎn),在這里就是指創(chuàng)建bean的主動(dòng)權(quán)發(fā)生了轉(zhuǎn)移,...

    shusen 評(píng)論0 收藏0
  • Spring IOC知識(shí)點(diǎn)一網(wǎng)打盡!

    摘要:使用的好處知乎的回答不用自己組裝,拿來(lái)就用。統(tǒng)一配置,便于修改。 前言 只有光頭才能變強(qiáng) 回顧前面: 給女朋友講解什么是代理模式 包裝模式就是這么簡(jiǎn)單啦 單例模式你會(huì)幾種寫(xiě)法? 工廠模式理解了沒(méi)有? 在刷Spring書(shū)籍的時(shí)候花了點(diǎn)時(shí)間去學(xué)習(xí)了單例模式和工廠模式,總的來(lái)說(shuō)還是非常值得的! 本來(lái)想的是刷完《Spring 實(shí)戰(zhàn) (第4版)》和《精通Spring4.x 企業(yè)應(yīng)用開(kāi)發(fā)實(shí)戰(zhàn)》...

    djfml 評(píng)論0 收藏0
  • Java深入-框架技巧

    摘要:從使用到原理學(xué)習(xí)線程池關(guān)于線程池的使用,及原理分析分析角度新穎面向切面編程的基本用法基于注解的實(shí)現(xiàn)在軟件開(kāi)發(fā)中,分散于應(yīng)用中多出的功能被稱為橫切關(guān)注點(diǎn)如事務(wù)安全緩存等。 Java 程序媛手把手教你設(shè)計(jì)模式中的撩妹神技 -- 上篇 遇一人白首,擇一城終老,是多么美好的人生境界,她和他歷經(jīng)風(fēng)雨慢慢變老,回首走過(guò)的點(diǎn)點(diǎn)滴滴,依然清楚的記得當(dāng)初愛(ài)情萌芽的模樣…… Java 進(jìn)階面試問(wèn)題列表 -...

    chengtao1633 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<