工作生活

spring框架常用

2019-07-04  本文已影响0人  尽人事听天命_6c6b

一.IOC的原理

<?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:context="http://www.springframework.org/schema/context"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd">

<bean id="user" class="entity.FirstBean" scope="prototype"></bean>

 <!-- 
set方式注入
name属性:类里面定义的属性名称
value属性:是我们设置的具体的值
ref:以来的bean的id值(我们自己设置的)
 -->
<bean id="examplBean" class="entity.ExamplBean" scope="singleton">
    <property name="firstBean" ref="user"></property>
</bean>


<!-- 
    1.加载spring核心配置文件
    //初始化IOC容器,参数值是要加载的配置文件相对于src的相对路径
   ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
   (1)new对象,功能可以实现,效率很低
   2.实现思想:把加载配置文件和创建对象过程,在服务器启动时候完成
   3.实现原理
    (1)ServletContext对象
    (2)监听器
    (3)具体使用
        在服务器启动的时候,为每个项目创建一个ServletContext对象
        在ServletContext对象创建的时候,使用监听器可以监听到ServletContext对象在什么时间创建的
        加载spring配置文件,把配置文件配置对象创建
        把创建出来的对象放到ServletContext域对象里面(setAttribute方法)
        互取对象时候,到ServletContext域对象里面(getAttribute方法)
 -->

</beans>

public static void main(String[] args) {
//初始化IOC容器,参数值是要加载的配置文件相对于src的相对路径
ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
//根据xml文件中的id来创建对象
FirstBean firstBean = (FirstBean) context.getBean("first");
//调用方法
firstBean.method1pspeak();
}

AOP的原理
<?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:context="http://www.springframework.org/schema/context"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd">

 <bean id="first" class="entity.FirstBean" ></bean>
 <!-- 通知类 -->
 <bean id="advisor" class="advice.advisor" ></bean>
 <!-- 配置切入点  value=".*method1" 可以以方法名结尾也可以以speak结尾-->
 <bean id="speakerPointCut" class="org.springframework.aop.support.JdkRegexpMethodPointcut">
    <property name="pattern" value=".*speak"></property>
 </bean>
 <!-- 配置顾问 -->
 <bean id="speakadvisor" class="org.springframework.aop.support.DefaultPointcutAdvisor">
        <property name="advice" ref="advisor"></property>
        <property name="pointcut" ref="speakerPointCut"></property>
 </bean>
 <!-- 配置代理 -->
 <bean class="org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator"></bean>

</beans>

上一篇下一篇

猜你喜欢

热点阅读