Spring教程(二)--注解&AOP的XML方式及注解方式

这篇博客详细介绍了Spring的注解驱动开发,包括IOC的注解配置、属性注入,深入讲解了@Component及其衍生注解,以及@Autowired、@Qualifier和@Resource的用法。此外,文章还探讨了Spring的AOP概念,通过XML和注解两种方式展示了AOP的入门案例,包括各种通知类型(前置、后置、环绕、异常和最终通知)以及切入点表达式的使用。最后,文章以注解方式实现了AOP入门案例。
摘要由CSDN通过智能技术生成

一、Spring的IOC注解开发

1.1 环境搭建

Spring4版本中,还需引入aop的包

在这里插入图片描述

applicationContext.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:context="http://www.springframework.org/schema/context" 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 definitions here -->

</beans>

ProductDao.java

package com.spring.demo01;

public interface ProductDao {
	
	public void save();
}

ProductDaoImpl.java

需配置Component属性

package com.spring.demo01;

import org.springframework.stereotype.Component;

@Component("productDao") //相当于在配置文件方式<bean id="productDao" class="com.spring.demo01.ProductDaoImpl">
public class ProductDaoImpl implements ProductDao {

	@Override
	public void save() {
		System.out.println("ProductDaoImpl保存了商品");
	}	
}

配置文件配置组件扫描信息

<?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" 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 definitions here -->

	<!-- Spring IOC的注解方式, -->
	<!-- 需配置组件扫描, 意思为配置包的类使用注解 -->
	<context:component-scan base-package="com.spring.demo01"></context:component-scan>

</beans>

TestDemo01.java

package com.spring.demo01;

import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.stereotype.Component;

/**
 * Spring的IOC注解开发的测试类
 * @author cf
 *
 */


public class TestDemo01 {

	@Test
	//Spring的IOC的注解方式
	public void demo01() {
		ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
		ProductDao productDao = (ProductDao) applicationContext.getBean("productDao");
		productDao.save();
		
	}
}

结果如下:

在这里插入图片描述

二、注解方式设置属性的值

  • 有set方法

在set方法出设置注解

ProductDaoImpl.java

package com.spring.demo01;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

@Component("productDao") //相当于在配置文件方式<bean id="productDao" class="com.spring.demo01.ProductDaoImpl">
public class ProductDaoImpl implements ProductDao {
	private String name;
	
	@Value("Model S")
	public void setName(String name) {
		this.name = name;
	}

	@Override
	public void save() {
		System.out.println("ProductDaoImpl保存了商品" + name);
	}
}

结果如下:

在这里插入图片描述

  • 无set方法

在属性值上设置注解

package com.spring.demo01;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

@Component("productDao") //相当于在配置文件方式<bean id="productDao" class="com.spring.demo01.ProductDaoImpl">
public class ProductDao
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值