Java框架学习_Spring(二)Spring_注解IOC的配置、常用注解总结、xml和注解的区别

Spring的注解开发,改变了传统的编程方式,目的都是IOC,即将类的创建和赋值的权利转交给Spring,我们可以用注解来代替前面所配置的xml的各种操作,十分的方便


1、Spring_注解IOC的配置:

  1. 导包:Spring注解IOC所用的jar包
  2. 配置xml(前面的内容已经和配置Bean的不同了,这是配置注解的,但是也包含了Bean的配置,两者都可以用)
<?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-context的约束,里面也包含了Bean的约束 -->

<!-- 使用Bean来做xml配置 -->
<!-- <bean id="test01" class="cn.nupt.demo01.UserDao.UserDaoImpl.UserDaoImpl"></bean> -->

Spring的IOC注解的配置==================================================== 

1、开启组件扫描(哪些包下的类需要使用IOC注解)
<context:component-scan base-package="cn.nupt.demo01.UserDao"></context:component-scan>

2、没有扫描的时候,打开(xml和注解整合开发,xml配置类,注解注入属性)
<context:annotation-config></context:annotation-config>
  1. 在我们创建的类里面写注释
  1. 在需要注释的类上加:@Component(“test02”)【相当于xml里面的 id=“test02” class=“类的全路径”】
  2. 在属性上加:@Value(“吴彦祖”)【相当于xml里面的注入属性】
    如果有set方法,就把注解写到set方法上面
    如果没有set方法,就把注解写道属性上面

    具体的代码展示如下:
package cn.nupt.demo01.UserDao.UserDaoImpl;

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

import cn.nupt.demo01.UserDao.UserDao;

@Component("test02")//相当于在xml里面配置了<bean id="test02" class="cn.nupt.demo01.UserDao.UserDaoImpl.UserDaoImpl"></bean>
public class UserDaoImpl  implements UserDao{
	
	@Value("吴彦祖")
	private String name;
	private int age;
	
	@Value("23")
	public void setAge(int age) {
		this.age = age;
	}

	public void save() {
		System.out.println("Dao中sava方法的实现。");
		System.out.println(name + ":" + age);
	}

}

  1. 编写测试类
@Test
	public void test03() {

		// IOC注解的方式
		ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
		UserDao userDao = (UserDao) context.getBean("test02");
		userDao.save();

	}	

输出:
Dao中sava方法的实现。
吴彦祖:23

2、常用注解总结:

  1. 修饰类的注解:@Component
    这个注解有三个衍生注解,功能类似,方便分组开发

    1. @Controller:web层
    2. @Service :service层
    3. @Repsitort:Dao层
  2. 属性注入注解

    1. @Value:设置普通属性的值
    2. @Resource:对象类型,按照名称注入
  3. 生命周期相关

    1. @PostConstruct:初始化方法(默认执行)
    2. @PreDestroy:销毁方法(在ApplicationContext接口实现类销毁的时候执行)
  4. Bean作用范围的注解(也是修饰类的): @Scope

    1. singleton单例(默认)
    2. prototype多例
    3. 等等(具体见前一篇博文)

3、xml和注解的区别:

xml:可以适用任何场景,结构清晰,后期维护方便
注解:有些地方用不了,比如这个类不是自己提供的,开发方便,但是需要看源代码

猜你喜欢

转载自blog.csdn.net/weixin_39782583/article/details/86167581