Spring 4.2 之 详解(二)

Spring 注解准备

导入jar包


代码结构目录


bean.xm文件配置

        引入新的约束,开启注解自动扫描包,到类,属性,方法

<?xml version="1.0" encoding="UTF-8"?>
<!-- 引用schema约束 -->
<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">
   
    <!-- 开启自动扫描注解 :包括类、方法、属性-->
    <context:component-scan base-package="com.debug.spring.*"/>
    
</beans>

注解创建对象(四个注解)

注解作用:为了让标注类本身的用途清晰,目前这四个注解功能都一样,都是创建对象

注解注入对象常见注解

@Component     ----- 

@Controller        ----- WEB层(常用)

@Service             ----- 业务层(常用)

@Repository       ----- 持久层

代码案例:


注解创建对象实例

@Scope(value="prototype")

@Scope(value="singleon")

注意:value值是可以省略的



Demo代码案例

1、在创建UserSerive.java类的上面使用注解实现

UserService.jave代码

/**
 * 1、使用注解创建对象。
 * 		@Component
 *      @Controller
 *      @Service
 * 2、@Scope注解
 * 		singleton
 *      propotype(使用场景是在多个Action)
 * 
 * @author Debug  date:2018-3-10上午10:21:45
 */
@Component(value="user_01")
public class User_01 {
	public void add(){
		System.out.println("创建新的同事......");
	}
}

测试Demo

public class TestUser_01 {
	@Test
	public void test() {
		ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(
				"config.xml");
		User_01 user = (User_01) context.getBean("user_01");
		User_01 user01 = (User_01) context.getBean("user_01");
		System.out.println("user:" + user);
		System.out.println("user01:" + user01);
		user.add();
	}
}

测试结果



注解注入属性

注入属性注解种类

@Autowired  自动注入(自动装配)

      概念:根据类名去找到你相关的对象,没有指定是哪个对象

@Resource(name="userDao")

      概念:name属性值写注解创建Dao对象时value的值;常用,可以准确指出你要注入的那个对象

创建userService.java 和 UserDao.java类 ,在service中得到userDao对象

Demo案例

@Service("userService")
public class UserService {
	/**
	 * 注入userDao到UserService中
	 *  1、定义将注入的对象 
	 *  2、在userDao属性上使用注解 完成对象注入
	 * 
	 * 注意:使用注解方式不需要set方法
	 */
//	@Autowired
//	private UserDao userDao;
	
	//name属性值写注解创建Dao对象时value的值;常用,可以准确指出你要注入的那个对象
	@Resource(name="userDao")
	private UserDao userDao;

	public void add() {
		System.out.println("注解注入属性userService.......");
		userDao.add();
	}
}
/**
 * 注意:使不使用value都可以
 * @author Debug  date:2018-3-10上午11:29:17
 */
@Component("userDao")
public class UserDao {
	public void add() {
		System.out.println("注解注入属性userDao.......");
	}

}
public class TestDemo2 {

	@Test
	public void test() {
		ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(
				"config.xml");
		UserService user = (UserService) context.getBean("userService");
		user.add();
	}

}

结果:



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值