Spring部分注解的使用

Spring注解可以充分利用 Java 的反射机制获取类结构信息,这些信息可以有效减少配置的工作。如使用 JPA 注释配置 ORM 映射时,我们就不需要指定 PO 的属性名、类型等信息,如果关系表字段和 PO 属性名、类型都一致,您甚至无需编写任务属性映射信息,因为这些信息都可以通过 Java 反射机制获取。
以下例子是在JSP+Servlet+JDBC项目上完成的。
1.在dao层使用注解 @Repository
这里需要注意的是注解是在接口的实现类中写,而不是接口。为了让 Spring 能够扫描类路径中的类并识别出 @Repository 注解,需要在 XML 配置文件中启用Bean 的自动扫描功能。

package com.gx.dao.impl;

import java.util.List;

import org.springframework.stereotype.Repository;

import com.gx.dao.IBasicsDataDao;
import com.gx.po.User;

//value="basicsDataDao"中的basicsDataDao就是这个接口在spring容
@Repository(value="basicsDataDao")
public class BasicsDataImpl implements IBasicsDataDao {
    
    

	@Override
	public List<User> selectAll() {
    
    
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public User findById(int id) {
    
    
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public int update(User t) {
    
    
		// TODO Auto-generated method stub
		return 0;
	}

	@Override
	public int insert(User t) {
    
    
		// TODO Auto-generated method stub
		return 0;
	}

	@Override
	public int deleteById(int id) {
    
    
		// TODO Auto-generated method stub
		return 0;
	}
}

2.在service层使用注解@Service:
使用注解后,不再使用new的方式来实例化dao层。注入dao层使用注解@Autowired(它可以对类成员变量、方法及构造函数进行标注,完成自动装配的工作),Spring会将dao层的对象注入到userDao变量,这里的变量名称建议和dao层注解的value值保持一致。而注入dao层也可以使用@Resource注解。@Resource和@Autowired注解都是用来实现依赖注入的。只是@Autowried按byType自动注入,而@Resource默认按byName自动注入。

package com.gx.service.impl;

import java.util.List;

import javax.annotation.Resource;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.gx.dao.IBasicsDataDao;
import com.gx.po.User;
import com.gx.service.IBasicsDataService;

@Service(value="basicsDataService")
public class BasicsDataServiceImpl implements IBasicsDataService {
    
    

	//第一种写法:自动装配
	@Autowired
	private IBasicsDataDao basicsDataDaoOne;
	
	//第二种写法
	@Resource
	private IBasicsDataDao basicsDataDaoTwo;
	
	@Override
	public List<User> selectAll() {
    
    
		// TODO Auto-generated method stub
		return basicsDataDaoOne.selectAll();
	}

}

3.Spring在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:p="http://www.springframework.org/schema/p"
	xmlns:context="http://www.springframework.org/schema/context"
	xmlns:aop="http://www.springframework.org/schema/aop"
	xmlns:tx="http://www.springframework.org/schema/tx"
	xsi:schemaLocation="
	http://www.springframework.org/schema/tx 
	http://www.springframework.org/schema/tx/spring-tx-3.1.xsd 
	http://www.springframework.org/schema/aop 
	http://www.springframework.org/schema/aop/spring-aop-3.1.xsd 
	http://www.springframework.org/schema/context 
	http://www.springframework.org/schema/context/spring-context-3.1.xsd 
	http://www.springframework.org/schema/beans 
	http://www.springframework.org/schema/beans/spring-beans-3.1.xsd">
	
	<!-- 开启注解 -->
	<context:annotation-config />
	<!-- 配置扫描路径, 去扫描有注解的包名-->
	<context:component-scan base-package="com.gx.dao,com.gx.service,com.gx.aop" />
	
	<!-- 自动为 spring容器中那些配置@Aspect切面的bean创健建代理,放入切面 -->
	<aop:aspectj-autoproxy />
</beans>

猜你喜欢

转载自blog.csdn.net/weixin_44547592/article/details/108281166
今日推荐