🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
[TOC] # 导入新的约束 在spring中使用注解,我们必须在applicationContext.xml文件中添加一个标签 `<context:annotation-config/>`作用是让spring中常用的一些注解生效。 要使用contex名称空间,必须在applicationContext.xml文件中引入 ![](https://box.kancloud.cn/298927ca77e631023e616bb1780d3774_1230x896.png) ![](https://box.kancloud.cn/a53fd75f892a5c07e12ed45aa8d98911_746x360.png) ![](https://box.kancloud.cn/d51767837f01084d82803f826ccd7626_1044x688.png) ![](https://box.kancloud.cn/3f68fe91f89712eb863ae58402b0ac13_1224x988.png) ![](https://box.kancloud.cn/859e7b5be54735db40cc4db1d6f1a262_1044x688.png) # 开启使用注解代替配置文件 ~~~ <!-- 指定扫描bean包下面所有类以及包 注意:扫描包时,会扫描指定包下所有的子孙包 --> <context:component-scan base-package="studySpring"> </context:component-scan> ~~~ # 在类中使用 在类上这样写 ~~~ import org.springframework.stereotype.Component; @Component("user") // 相当于 <bean name="user" class="studySpring.User"> public class User { ~~~ Component里面的名字就是bean的名字 来个测试 ~~~ // 1. 创建容器对象 ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml"); // 2. 向容器要user对象 Object u = ac.getBean("user"); // 3.打印user对象 System.out.println(u); ~~~ # 表示在那一层 ~~~ @Component("user") @Service("user") //service层 @Controller("user") //web层 @Repository("user") //dao层 ~~~ # 作用域 ~~~ @Scope(scopeName = "prototype") //scopeName取值有singleton|prototype,默认是singleton ~~~ # 注入值 ~~~ @Value("tom") private String name; //可以忽略value,写成这样@Value("18") @Value(value = "18") private Integer age; ~~~ 还有种 ~~~ @Value("tom") public void setName(String name) { this.name = name; } ~~~ 他们区别是上面一个是通过反射name来赋值,下面一个是通过set方法赋值 上面一种赋值是破坏了封装性 **给引用类型注入** 首先对应的类型注入 ~~~ @Component("car") public class Car { ~~~ 然后自动装备 ~~~ @Autowired // 自动装配 private Car car; ~~~ 但是问题来了,匹配多个对象,将无法确定 可以这样,告诉装配那个名称 ~~~ @Autowired // 自动装配 @Qualifier("car2") ~~~ 也可以这样,指定告诉他要注入那个 ~~~ @Resource(name = "car") private Car car; ~~~ # 初始化方法和销毁方法 ~~~ @PostConstruct // 在对象创建后调用,init-method public void init() { System.out.println("我是初始化方法!"); } @PreDestroy // 在销毁之前调用.destory-method public void destory() { System.out.println("我是销毁方法!"); } ~~~