解耦性2

AOP:(面向切面编程):
AOP为Aspect Oriented Programming的缩写,以为面向切面编程,通过预编译方式和运行期间动动态实现程序功能的统一维护的一种技术。利用AOP可以对业务逻辑的各个部分隔离,从而使得业务逻辑各部分降低耦合度降低,提高程序的可重复性,同时提高开发的效率。

AOP 是OOP的补充和完善。AOP利用一种称为“横切”技术,破解开封装的对象内部,并将那些影响了多个公共胸围封装到一个可重用模板,并将其名为“Aspect”,几方面,所为“方面”,简单地说,就是讲那些业务无关,为业务模板快所共同调用的逻辑或责任封装,便于减少系统重复代码,降低模块间的耦合度,并于未来可操作和维护。

  • Aspect(切面):在实际应用中,切面通常是指封装用于横向常茹系统的功能(如事物、日志等)类。
  • Joinpint(连接点):在程序执行过程的某阶段点,它实际上时对象的一个操作,列如方法调用或异常的抛出。
  • pointcut(切入点):是指切面与程序的交叉点,需要处理的连接点。通常在程序中切入点指的是类或者方法名,如某个通知应用到所有以add开头的方法中,那么所有满足者以规则的方法都是切入点。
  • Advice(通知 / 增强处理):AOP 框架在特点的切点执行的增强处理,即在定义好的切入处要执行的程序代码,切面类中的方法,它是切面的具体实现
  • Target Object(目标对象):是指所有的被通知对象,也称为被增强对象。如果AOP矿建采用的是动态的AOP实现,那么该对象就是一个被代理对象
  • Proxy(代理):将通知应用到目标对象之后,被动态创建的对象。
  • Weaving(织入):将切面代码插入到目标对象上,从而生成代理对象的过程。

创建bean的方法有两种
第一种是导jar。第二种建立maven项目;

建立这两种方法之前准备工作:下载jar

Spring:网址:https://spring.io/propjects/
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
网址:https://github.com/spring-projects/spring-framework/wiki/Spring-Framework-Artifacts
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
选择要下载的版本即可下载了

创建Spring的第一种方式

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
找到刚下载的jar包进行解压:
在这里插入图片描述
在这里插入图片描述
选择下面的四个包复制到l ib 里:
在这里插入图片描述
还需要一个包:网址:http://commons.apache.org/proper/commons-logging/download_logging.cgi
在这里插入图片描述
下载好粘贴复制到lib里

在这里插入图片描述
在这里插入图片描述

着重在第二个Spring的方法:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在pom.xml文件里写jar :代码如下

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>org.example</groupId>
    <artifactId>spring_loc_maven</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>jar</packaging>

    <dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>5.2.5.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
        </dependency>
    </dependencies>

</project>

配置约束文件:在这里插入图片描述
在这里插入图片描述
约束模板信息:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
       
 </beans>      

应用刚建立的模板:
在这里插入图片描述
在这里插入图片描述
写完所有内容建立的文件如下图所示:
在这里插入图片描述
bean.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"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">

    <!--将对象的创建(new的那个环节)交托给Spring来管理-->

    <!--bean中的id 是一个唯一标识 -->
    <bean id="userService" class="cn.javabs.service.impl.UserServiceImpl"></bean>

<!--    id 相当于键   class 相当于 值-->
    <bean id="userDao" class="cn.javabs.dao.impl.UserDaoImpl"></bean>


</beans>

UserDaoImpl 类

package cn.javabs.dao.impl;

import cn.javabs.dao.UserDao;

public class UserDaoImpl implements UserDao {
    public void addUser() {
        System.out.println("用户提交....");
    }
}

UserDao 接口

package cn.javabs.dao;

public interface UserDao {
    void  addUser();
}

UserServiceImpl 类

package cn.javabs.service.impl;

import cn.javabs.dao.UserDao;
import cn.javabs.service.UserService;

public class UserServiceImpl implements UserService {

    private UserDao userDao;

    public void userAdd() {
//        userDao.addUser();
    }
}

UserService 接口

package cn.javabs.service;

public interface UserService {

    void  userAdd();
}

MyTest

package cn.javabs.test;

import cn.javabs.service.UserService;
import org.junit.Test;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class MyTest {

    @Test
    public  void testfun(){
        // 获取配置文件
        ClassPathXmlApplicationContext ac = new ClassPathXmlApplicationContext("bean.xml");
        UserService us = (UserService) ac.getBean("userService");
        Object ud = ac.getBean("userDao");

        System.out.println(us);
        System.out.println(ud);
        us.userAdd();
    }
}

运行的结果:
在这里插入图片描述
熟悉错误:
在这里插入图片描述
改后的:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值