您的位置:首页 > 编程语言 > Java开发

Spring的bean管理(注解)

2017-06-28 09:53 435 查看

一.注解介绍

代码里面特殊标记,使用注解可以完成功能

注解写法 @注解名称(属性名称=属性值)

注解使用在类上面,方面上面和属性上面

二.Spring注解开发准备

1.导入jar包

(1).导入基本的jar包



(2).导入aop的jar包



2.创建类,创建方法

3.创建Spring配置文件,引入约束

(1)上一次做ioc基本功能,引入约束beans

(2)做spring的ioc注解开发,引入新的约束

<?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>


4.开启注解扫描

<!-- 开启注解扫描
(1)到包里面扫描类,方法,属性上面是否有注解
-->
<context:component-scan base-package="cn.itcast"></context:component-scan>

<!--
扫描属性上面的注解
-->
<!--        <context:annotation-config></context:annotation-config> -->


注解创建对象

在创建对象的类上面使用注解实现

@Component(value=book")  //相同于<bean id="user" class=""/>
public class Book {

public void add() {
System.out.println("Book add");
}

}


public class SpringDemo {

@Test
public void fun1() {
ApplicationContext context=new ClassPathXmlApplicationContext("applicationContext.xml");

Book book=(Book)context.getBean("book");

book.add();
}
}


创建对象有四个注解



@Component

@Controller

@Service

@Repository

目前这四个注解功能是一样的,都创建对象

5.创建对象单实例还是多实例

@Service(value="user")  //<bean id="user" class=""/>
@Scope(value="prototype") //多实例
public class User {

public void add() {
System.out.println("add...");
}
}


6.注解注入属性

(1).创建service类,创建dao类,在service得到dao对象,注入属性第一个注解@Autowired

A.创建dao和service对象

@Component(value="userDao")
public class UserDao {

public void add() {
System.out.println("UserDao add");
}
}


B.在service类里面定义dao类型属性

@Component(value="userService")
public class UserService {

//得到dao对象
//1.定义dao类型属性
//在dao属性上面使用注解 完成对象注入
@Autowired
private UserDao userDao;
//使用注解方式时候不需要set方法

public void add() {
System.out.println("UserService add");
userDao.add();
}

}


(2).注入属性第二个注解 @Resource

@Component(value="userService")
public class UserService {

//name属性值写 注解创建dao对象value的值
@Resource(name="userDao")
private UserDao userDao;

public void add() {
System.out.println("UserService add");
userDao.add();
}

}


三.配置文件和注解混合使用

1.创建对象操作使用配置文件方式实现

<?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 -->

<!-- 开启注解扫描
(1)到包里面扫描类,方法,属性上面是否有注解
-->
<context:component-scan base-package="cn.st"></context:component-scan>

<!-- 配置对象 -->
<bean id="bookService" class="cn.st.web.BookService"></bean>
<bean id="bookDao" class="cn.st.web.BookDao"></bean>
<bean id="ordersDao" class="cn.st.web.OrdersDao"></bean>
</beans>


2.注入属性的操作使用注解方式实现

@Component(value="bookService")
public class BookService {

@Resource(name="bookDao")
private BookDao bookDao;
@Resource(name="ordersDao")
private OrdersDao ordersDao;

public void add() {
System.out.println("BookService add");
bookDao.add();
ordersDao.add();
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: