![](https://img.haomeiwen.com/i12883356/542a2c04206d6af6.png)
SpringIOC代码详解:
首先要在src根目录下创建一个Spring.xml文件
<?xml version="1.0" encoding="UTF-8" ?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="printA" class="com.yin.Springframework.printA">
<property name="Message" value="DaoEHua"></property>
</bean>
<bean id="printB" class="com.yin.Springframework.printB">
<property name="Message" value="DaoEXuan"></property>
<property name="Phone" value="android"></property>
</bean>
</beans>
![](https://img.haomeiwen.com/i12883356/e7f76119386eb21c.png)
创建一个接口,I_SpringIOC
package com.yin.Springframework;
/*
定义一个接口,规范print方法
*/
public interface I_SpringIOC {
public void print();
}
创建两个类,printA,printB
package com.yin.Springframework;
//printA类继承I_SpringIOC接口
public class printA implements I_SpringIOC{
//定义类的属性和Spring.xml中一致
public String Message;
//继承I_SpringIOC接口中的print方法,输出打印信息
public void print(){
System.out.println("this is printA");
System.out.println("Message:"+Message);
}
//定义属性的get和set方法
public String getMessage() {
return Message;
}
public void setMessage(String message) {
Message = message;
}
}
package com.yin.Springframework;
//printB类继承I_SpringIOC接口
public class printB implements I_SpringIOC{
//定义类的属性和Spring.xml中一致
public String Message;
public String Phone;
//定义属性的get和set方法
public String getPhone() {
return Phone;
}
public void setPhone(String phone) {
Phone = phone;
}
//继承I_SpringIOC接口中的print方法,输出打印信息
public void print(){
System.out.println("this is printB");
System.out.println("Message:"+Message+",Phone:"+Phone);
}
public String getMessage() {
return Message;
}
public void setMessage(String message) {
Message = message;
}
}
SpringIoc类:
package com.yin.Springframework;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.testng.annotations.Test;
public class SpringIoc {
//把Spring.xml文件加载进来,要使用绝对路径,要不然找不到文件
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("file:D:/Springboot/MyApplicationthree/src/Spring.xml ");
@Test
public void run(){
//获取bean文件,要强制转换成I_SpringIOC类型,才能使用该接口的print方法打印,要不然还需要重新new printB类
I_SpringIOC i_springIOC = (I_SpringIOC)applicationContext.getBean("printB");
i_springIOC.print();
}
}
Spring.xml文件的路径要使用绝对路径,要不然找不到文件。
AOP
![](https://img.haomeiwen.com/i12883356/2a481e82231f2195.png)
比如点击click一个元素是一个连接点,在点击click之前切入打印日志,在点击click之后切入打印日志,在运行中切入打印日志等,如果click是横向的操作,切入打印日志就是竖向的操作,这就是AOP的切面编程,拦截器。
![](https://img.haomeiwen.com/i12883356/b652b7a21970f155.png)
网友评论