练习一
第一步:创建实体类 Person.java
package com.spring.beans;/*** @auther zll* @create 2020/7/14-19:00*/
public class Person {private String name;private String sayworld;public String getName() {return name;}public void setName(String name) {this.name = name;}public String getSayworld() {return sayworld;}public void setSayworld(String sayworld) {this.sayworld = sayworld;}public void say(){System.out.println(this.name+"说: "+this.sayworld);}@Overridepublic String toString() {return "Person{" +"name='" + name + '\'' +", sayworld='" + sayworld + '\'' +'}';}
}
第二步:建立applicationContext.xml 文件,并在其中进行配置
<bean id="personSay" class="com.spring.beans.Person"><property name="name" value="张嘎"></property><property name="sayworld" value="三天不打小鬼子,手都痒痒"></property></bean><bean id="personSay1" class="com.spring.beans.Person"><property name="name" value="Rod"></property><property name="sayworld" value="世界上有两种人,认识二进制的和不认识二进制的"></property></bean>
第三步:在测试类Testperson.java 中进行测试
package com.spring.test;import com.spring.beans.Person;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;/*** @auther zll* @create 2020/7/14-19:08*/
public class Testperson {@Testpublic void test(){ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");Person personSay = (Person) context.getBean("personSay");System.out.println(personSay.toString());Person personSay1 = (Person) context.getBean("personSay1");System.out.println(personSay1.toString());}
}
练习二:
第一步:创建Lnk(墨盒),和 Paper(纸张) 接口
public interface Lnk {public String getColor();
}
public interface Paper {public String Size();
}
第二步:实现Lnk和Paper接口
public class A4Paper implements Paper {@Overridepublic String Size() {return "A4";}}
public class B5Paper implements Paper {@Overridepublic String Size() {return "B5";}
}
public class LnkBlackWhite implements Lnk {@Overridepublic String getColor() {return "blackwhite";}
}
public class LnkColor implements Lnk {@Overridepublic String getColor() {return "color";}
}
第三步:创建Printer.java 类
public class Printer {private Lnk lnk;private Paper paper;@Overridepublic String toString() {return "Printer{" +"lnk=" + lnk.getColor() +", paper=" + paper.Size() +'}';}public Lnk getLnk() {return lnk;}public void setLnk(Lnk lnk) {this.lnk = lnk;}public Paper getPaper() {return paper;}public void setPaper(Paper paper) {this.paper = paper;}
}
第四步:在applicationContext.xml 文件 配置
<bean id="a4" class="com.spring.dao.impl.A4Paper"></bean><bean id="b5" class="com.spring.dao.impl.B5Paper"></bean><bean id="color" class="com.spring.dao.impl.LnkColor"></bean><bean id="black" class="com.spring.dao.impl.LnkBlackWhite"></bean><bean id="printer" class="com.spring.beans.Printer"><property name="lnk" ref="color"></property><property name="paper" ref="a4"></property></bean>
第五步:进行测试
public class TestPrinter {@Testpublic void test(){ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");Printer p = (Printer)context.getBean("printer");System.out.println(p.toString());}}
练习三:Aop
第一步:创建ArithMatic 接口
public interface ArithMatic {//加法运算public int add(int i , int j);
}
第二步:实现接口
public class ArithMaticImpl implements ArithMatic {@Overridepublic int add(int i, int j) {int res = i+j;System.out.println("正在计算中。。。。。。");return res;}
}
第三步:创建 切面类ArithMaticImplLogger
public class ArithMaticImplLogger {public void beforeLogger(JoinPoint joinPoint){String methodName = joinPoint.getSignature().getName();List<Object> args = Arrays.asList(joinPoint.getArgs());System.out.println("The Method "+methodName+" with "+args);}public void afterLogger(JoinPoint joinPoint ,Object object){String methodName = joinPoint.getSignature().getName();System.out.println("The Method "+methodName+ " ends res: "+object);}
}
第四步:进行xml配置
<bean id="Arith" class="com.spring.aop.ArithMaticImpl"></bean><bean id="ArithLogger" class="com.spring.aop.ArithMaticImplLogger"></bean><aop:config>
<!-- 配置切入点--><aop:pointcut id="pointcut" expression="execution(public int com.spring.aop.ArithMaticImpl.add(int,int))"/>
<!-- 切面具体配置--><aop:aspect ref="ArithLogger">
<!-- 前置增强--><aop:before method="beforeLogger" pointcut-ref="pointcut"></aop:before>
<!-- 后置增强--><aop:after-returning method="afterLogger" pointcut-ref="pointcut" returning="object"></aop:after-returning></aop:aspect></aop:config>
第五步:测试
public class TestArithMaticImpl {@Testpublic void test(){ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");ArithMatic arith = (ArithMatic) context.getBean("Arith");arith.add(1, 2);}
}