特定注解包括: 可以创建一个类的实例 实例的变量名为--类名的首字母小写
@Component: 基本注解, 标识了一个受 Spring 管理的组件
@Respository: 标识持久层组件
@Service: 标识服务层(业务层)组件
@Controller: 标识表现层组件
例如
package lesson02.cycle;
//@Component("abc") 指定这里类的实例对象名为 abc
@Component //这个类的实例对象名为 a
public class A {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public void ini(){
System.out.println("ghfgh");
}
public void des(){
System.out.println("bbb");
}
}
spring默认扫描自带注解 比如Controller Service...
<context:component-scan></context:component-scan> 扫描控件
在spring.xml中添加此标签
<context:component-scan base-package="lesson02"></context:component-scan>
如有需要可以排除
<context:component-scan base-package="lesson02">
type="annotation"排除某个类中的某个注解 expression="org.springframework.stereotype.Controller"注解的路径
type="assignable"排除某个类中的所有注解 expression="lesson02.mvc.controller" 类的路径
<context:exclude-filter type="assignable" expression="lesson02.mvc.controller"/>
</context:component-scan>
也可以把自己定义的注解包含进来
先自己定义一个注解类
package lesson02.mvc;
public @interface TTT {
}
在spring中使用该标签把自己定义的注解包含进来 扫描的时候就会扫描这个注解
<context:include-filter type="annotation" expression="lesson02.mvc.TTT"/>
</context:component-scan>
自动装配具@Autowired 和 @Resource 、@Inject注解的属性.
@Resource(name="myDao") name=类名的首字母小写 根据名字进行自动装配 jdk1.6以后才能使用
private MyDao myDao; 变量名可以随意更改
@Inject 同上
@Autowired 根据类型自动装配