SSM编程---Day 05

目录

一、IOC

(一)企业级系统的特点:

(二)Spring框架的优点:

(三)ApplicationContext的作用:

(四)理解IOC原理、掌握IOC的配置

二、AOP(面向切面编程)

(一)AOP相关术语

(二)增强的几种方式

(三)切入点表达式匹配规则举例

三、常见的注入方式

 四、ioc的注解

五、AOP注解

一、IOC

(一)企业级系统的特点:

        1、大规模、用户数量多、数据规模大、功能众多
        2、性能和安全要求很高
        3、业务复杂
        4、灵活多变

(二)Spring框架的优点:

        1、低侵入式设计
        去除此框架后,只需要修改一些配置信息、即可。反之,既是高侵入性
        2、与第三方框架的良好整合
        3、独立于各种应用服务器
        4、依赖注入特性将组件关系透明化,降低了耦合度
        5、面向切面编程特性允许将通用任务进行集中式处理

(三)ApplicationContext的作用:

        ApplicaitonContext是 Spring 的核心、 Context 通常解释为上下文环境,这里用容器来表达更容易理解一些。ApplicationContext 则是 ' 应用的容器 ' Spring bean 放在这个容器中,在需要的时候,用 getBean 方法取出来。

(四)理解IOC原理、掌握IOC的配置

        IOC/DI(控制反转/依赖注入)
        简单理解: 就是把创建的对象的控制权,由我们自己本身,转移到了 Spring 容器中。交给 Spring 容器去帮我们创建对象。换句话说:以后在使用spring 的过程中,基本上不用自己去创建对象,而是交给容器去帮我们创建对象。我们只需要从容器中获取相对应的对象就行。
导入依赖
<dependencies>
    <!-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc -->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-webmvc</artifactId>
        <version>5.3.10</version>
    </dependency>
</dependencies>

二、AOP(面向切面编程)

        AOP的目标:让我们可以“专心做事”

        AOP原理 :将复杂的需求分解出不同方面,将散布在系统中的公共功能集中解决。采用代理机制组装起来运行,在不改变原程序的基础上对代码段进行增强处理,增加新的功能

        所谓面向切面编程,是一种通过预编译和运行期动态代理的方式实现在不修改源代码的情况下给程序动态添加功能的技术

(一)AOP相关术语

        增强处理(Advice):前置增强 后置增强 环绕增强、异常抛出增强、最终增强等类型

        切入点(Pointcut)

        连接点(Join Point)

        切面(Aspect)

        目标对象(Target object)

        AOP代理(AOP proxy)

        织入(Weaving)

(二)增强的几种方式

(三)切入点表达式匹配规则举例

public * addNewUser(entity.User):       “*”表示匹配所有类型的返回值。
public void *(entity.User):         “*”表示匹配所有方法名。
public void addNewUser(..):     “..”表示匹配所有参数个数和类型。
* com.service.*.*(..):           匹配com.service包下所有类的所有方法。
* com.service..*.*(..):        匹配com.service包及其子包下所有类的所有方法

三、常见的注入方式

        1、DI(依赖注入)
        2、通过set 方法来完成值的注入。
        3、通过构造方法来完成值的注入,弊端,只能靠构造方法的重载来完成。
        注意事项:
        当构造方法中的参数无法区分时,我们经常使用index 属性来区分调用哪一个构造方法, index=0 表示第一个参数。
        构造方法和设值注入的区别

 四、ioc的注解

        1、@Component:通用注解(除了dao、 service controller 之外的包下面可以使用)
        以下三个注解都是作用在类上面的
        2、@Repostiory:用于dao 上面。
        3、@Service:用于service 上面。
        4、@Controller:用于controller
        我们需要给属性注入值,自动装配。
        @Autowire
        @Quliafifire("") 指定唯一的实现类。或者 @Resource,当有多个类型的时候,需要使用 @Resource(name=" ")
        SSM 的注解使用:
        凡是dao里 面的实现类,用 @Respotiory
        凡是service里 面的实现类,用 @Service
        凡是controller里 面的实现类,用@Controller
        所有的属性上面,都需要检测是否有@Autowire,当有多个实现类的情况下,我们需要做区分来使用。
         添加注解的目的,是为了告诉spring容器,我们的目的是干什么?
        在类上面添加注解,主要是告知spring容器,创建对象、销毁对象、(管理对象)
        在属性上面添加注解,主要的目的是告知spring容器,我们需要给属性注入值(赋值) 默认调用Set方法

五、AOP注解

        @Before 前置增强
        @AfterReturing后置增强
        @After最终增强
        @AfterThrowing异常增强
        @Around 环绕增强
注意:
        1、使用注解方式定义切面可以简化配置工作量
        2、在配置文件中添加<aop:aspectj-autoproxy />元素,启用对于AspectJ注解的支持
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值