使用注解创建对象
注解
- 代码里面的特殊标记,使用注解可以完成功能
- 注解写法
@注解名称(属性名=属性值)
- 注解可以使用在类上面 \ 方法上面 \ 属性上面
使用注解
注解开发准备工作
- 导入jar包
- 基本jar包
- commons-logging
- log4j
- spring-beans
- spring-context
- spring-core
- spring-expression
- 注解jar包
spring-aop
- 基本jar包
- 创建类和方法
public class anno{
public void add(){
System.out.println("add...");
}
}
3.创建Spring的配置文件
* 以前引入的是beans的约束
* 注解 : 需要从新引入约束
<?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">
</beans>
4.开启注解扫描
<!--
开启注解扫描
base-package的是扫描路径,多扫描可以不写全路径,写到包含的全部文件的路径即可
这个方法扫描 类 / 方法 / 属性 上的注解
-->
<context:component-scan base-package="cn.po"></context:component-scan>
<!--
只扫描属性上面的注解(不经常用)
-->
<context:annotation-config></context:annotation-config>
注解创建对象
- 注解方式–但是功能完全一样,主要为以后改变预留
@Component | 基础 |
@Controller | WEB层 |
@Service | 业务层 |
@Repository | 持久层 |
* 创建一个User对象
/**
* 创建对象
* 相当于 <bean id="user" class="com...">
*/
@Component(value="user")
public class User{
private String uname;
public void setUname(String uname){
this.uname=uname;
}
}
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">
<!-- 分配注解扫描范围 -->
<context:component-scan base-package="cn.po"></context:component-scan>
</beans>
使用注解注入属性
@Autowired | 自动装配 |
@Resource | WEB层 |
- 创建UserDao
/**
* 创建对象
* /
@Component(value="userDao")
public class UserDao{
}
- 创建UserService
- 自动注入对象
/**
* 创建对象
* /
@Service(Value="userService")
public class UserService{
/**
* 自动装配
* UserDao通过注解的方式注入
* UserDao类型的
* /
@Autowired
private UserDao userDao;
public void show(){
}
}
2. 手动注入
/**
* 创建对象
* /
@Service(Value="userService")
public class UserService{
/**
* 手动注入
* UserDao通过注解的方式
* 注入将注解的userDao对象
* /
@Resource(name="userDao")
private UserDao userDao;
public void show(){
}
}
xml和注解混合使用
创建对象
- 创建类
public class Book{
}
- 创建对象
<bean id="book" class="com.bean.Book/>
注入属性
/**
* 创建对象
*/
@Component(value="shopping")
public class Shopping{
/**
* 注入属性
* /
@Resource(name="book")
private Book book;
}