Spring框架部署基于注解配置:
直接在实体类中添加注解声明给Spring容器管理,以达到简化开发步骤的目的
-
创建maven工程
-
添加依赖
org.springframework spring-context 5.3.10
-
创建配置文件
- 因为在Spring容器初始化时,智慧加载applicationContext.xml文件,那么我们在实体类中添加的注解不会被Spring扫面,所以我们需要在applicationContext.xml文件中声明Spring的扫描范围,以达到Spring初始化扫描带有注解的实体类并完成初始化工作
@Component
-
类注解,声明此类被Spring容器进行管理,向胆固bean标签的作用
-
@Component(value=“stu”)value属性相当于指定当前bean的Id,相当于bean标签的id属性;value属性也可以省略,如果省略当前类的id默认为类名的首字母改小写
-
@Service
-
@Controller
-
@Repository
-
以上三个注解也可以将类声明给Spring管理,他们主要是语义上的区别
- @Controller注解主要声明将控制器类配置给Spring管理,例如Servlet
- @Service 注解主要声明将业务处理类配置给Spring管理,Service接口的实现类
- @Repository 注解主要声明将持久化类配置给Spring管理,例如Dao接口
- Component 注解 声明除了控制器、service、和Dao之外的类一律使用此注解配置
-
@Scope
-
类注解,用于声明当前类单例模式还是非单例模式,相当于bean标签的scope属性
-
@Scope(“prototype”)表示声明当前类为非单例模式(默认单例模式)
-
@Lazy
-
类注解,用于声明一个单例模式的Bean是否为懒汉模式
-
@Lazy(true)声明为懒汉模式(调用时创建无参构造器)
-
声明周期注解
-
@PostConstruct
-
方法注解,声明一个方法为当前类的初始化方法(在构造器之后执行),相当于bean标签的init-method属性
-
@PreDestory
-
方法注解,声明一个方法为当前类的销毁方法(在对象从容器中释放之前执行),相当于bean标签的destory-method属性
-
自动装配
-
@Autowried
-
属性注解,同时也是方法注解 (方法必须为set方法) 声明当前属性自动装配,默认byType,默认必须(如果没有找到类型与属性类型匹配的bean则抛出异常)
-
@Autowried(required = false) 通过required属性设置当前自动装配是否为必须(默认必须)
-
ref引用
-
@Autowired public void setClazz(@Qualifier("clazz") Clazz clazz) { this.clazz = clazz; } -
@Resource
-
属性注解,也用于声明属性自动装配
-
默认装配方式为byName,如果根据byName没有找到对应的Bean,则继续根据byType寻找对应的Bean,根据byType如果依然没有找到,或找到不止一个类型匹配的bean,则抛出异常。



