spring注解方式注入bean
用注解的方式注入bean,spring的配置文件也要增加一些约束和导入注解所在的包
applicationContext.xml
1 <?xml version="1.0" encoding="UTF-8"?> 2 <beans xmlns="http://www.springframework.org/schema/beans" 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 4 xmlns:context="http://www.springframework.org/schema/context" 5 xsi:schemaLocation="http://www.springframework.org/schema/beans 6 http://www.springframework.org/schema/beans/spring-beans.xsd 7 http://www.springframework.org/schema/context 8 http://www.springframework.org/schema/context/spring-context.xsd"> 9 10 <context:component-scan base-package="com.xiaostudy.service"></context:component-scan> 11 <context:component-scan base-package="com.xiaostudy.dao"></context:component-scan> 12 </beans>
用注解注入的bean类PersonImple.java
1 package com.xiaostudy.service; 2 3 import javax.annotation.PostConstruct; 4 import javax.annotation.PreDestroy; 5 import javax.annotation.Resource; 6 7 import org.springframework.beans.factory.annotation.Value; 8 import org.springframework.context.annotation.Scope; 9 import org.springframework.stereotype.Component; 10 /* 11 * bean注入 12 * 1、@Component("id") 13 * 2、WEB: 14 * @Controller("id") web 15 * @Service("id") service 16 * @Repository("id") dao 17 */ 18 @Component("person") 19 /* 20 * bean作用域 21 * @Scope("singleton") 单例(也是默认) 22 * @Scope("prototype") 每new一次都是新的对象 23 */ 24 @Scope("prototype") 25 public class PersonImple implements Person { 26 /* 27 * bean参数注入 28 * 1、普通参数(也就是说那些基本数据类型) 29 * 在参数上面或者在相应的set方法 @Value("值") 30 * 2、引用参数 31 * 2.1按照类型注入:@Autowired 32 * 2.2按照名称注入:@Autowired @Qualifier("id") 33 * 2.3按照名称注入:@Resource 34 * 35 */ 36 //@Resource 37 private Dao_demoImple dao_demo; 38 @Value("xiaostudy") 39 private String name; 40 41 42 public String getName() { 43 return name; 44 } 45 46 public void setName(String name) { 47 this.name = name; 48 } 49 50 public Dao_demoImple getDao_demo() { 51 return dao_demo; 52 } 53 54 @Resource 55 public void setDao_demo(Dao_demoImple dao_demo) { 56 this.dao_demo = dao_demo; 57 } 58 /* 59 * bean初始化方法注解 60 * @PostConstruct 61 */ 62 @PostConstruct 63 public void init() { 64 System.out.println("init()>>>>>>"); 65 } 66 67 /* 68 * bean销毁注解 69 * @PreDestroy 70 */ 71 @PreDestroy 72 public void destroy() { 73 System.out.println("destroy()>>>>>"); 74 } 75 76 }
Person接口
1 package com.xiaostudy.service; 2 3 public interface Person { 4 5 }
Dao_demo接口
1 package com.xiaostudy.dao; 2 3 public interface Dao_demo { 4 5 }
Dao_demoImple.java
1 package com.xiaostudy.service; 2 3 import org.springframework.beans.factory.annotation.Value; 4 import org.springframework.stereotype.Component; 5 6 import com.xiaostudy.dao.Dao_demo; 7 @Component("dao_demo") 8 public class Dao_demoImple implements Dao_demo { 9 10 private String name; 11 12 public String getName() { 13 return name; 14 } 15 16 @Value("demo") 17 public void setName(String name) { 18 this.name = name; 19 } 20 21 public void add() { 22 System.out.println("add>>>>>>"); 23 } 24 25 }
测试类Test.java
1 package com.xiaostudy.service; 2 3 import org.springframework.context.ApplicationContext; 4 import org.springframework.context.support.AbstractApplicationContext; 5 import org.springframework.context.support.ClassPathXmlApplicationContext; 6 7 import com.xiaostudy.dao.Dao_demo; 8 import com.xiaostudy.service.Person; 9 10 public class Test { 11 12 public static void main(String[] args) { 13 ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml"); 14 Person person = ac.getBean("person", Person.class); 15 System.out.println(person); 16 PersonImple pi = (PersonImple)person; 17 System.out.println(pi.getName()); 18 Dao_demoImple dao_demo = pi.getDao_demo(); 19 System.out.println(dao_demo); 20 dao_demo.add(); 21 System.out.println(dao_demo.getName()); 22 /*Person person1 = ac.getBean("person", Person.class); 23 Person person2 = ac.getBean("person", Person.class); 24 System.out.println(person1); 25 System.out.println(person2); 26 ((AbstractApplicationContext) ac).close();*/ 27 } 28 29 }
转载于:https://www.cnblogs.com/xiaostudy/p/9534697.html
spring注解方式注入bean相关推荐
- 【Spring学习】spring注解自动注入bean
Spring mvc注解用到的配置: <!-- 启用spring mvc 注解 --> <context:annotation-config /> <context:co ...
- spring 注解方式配置Bean
概要: 再classpath中扫描组件 组件扫描(component scanning):Spring可以从classpath下自己主动扫描.侦測和实例化具有特定注解的组件 特定组件包含: @Comp ...
- spring注解方式 2022/08/22
spring注解方式 代码整体布局: 代码如下: pom.xml: spring-1.xml: Student: Test: Test2: spring-2.xml: Car: Driver: Tes ...
- Spring——Filter过滤器注入Bean时注入失败[NULL]
问题描述 Spring中Filter注入Bean时注入失败,Bean一直为空. @Slf4j @Component public class RestAuthFilter extends FormAu ...
- (转)使用Spring注解方式管理事务与传播行为详解
http://blog.csdn.net/yerenyuan_pku/article/details/52885041 使用Spring注解方式管理事务 前面讲解了怎么使用@Transactional ...
- 【Spring系列】 Spring注解方式实现IOC、DI及其Spring其他注解
文章目录 注解回顾 JDK内置注解 自定义注解 1.声明一个注解类,由`@interface`修饰 2.通过元注解修饰注解的定义 `@Target`:(常用) `@Retention`:(常用) `@ ...
- Autowired,Qualifier,Spring 按名称注入bean属性
Autowired,Qualifier,Spring 按名称注入bean属性 @Autowired@Qualifier("addItemDestination")private T ...
- 使用@atuowired注解无法注入bean的解决方法(出现Field userMapper in com.peng.service.Impl.UserServiceImpl required a b
使用@atuowired注解无法注入bean的解决方法(出现Field userMapper in com.peng.service.Impl.UserServiceImpl required a b ...
- Spring注解依赖注入的三种方式的优缺点以及优先选择
当我们在使用依赖注入的时候,通常有三种方式: 1.通过构造器来注入: 2.通过setter方法来注入: 3.通过filed变量来注入: 那么他们有什么区别吗?应该选择哪种方式更好? 代码示例: Con ...
最新文章
- 实现数据集多( 高 )维可视化(附代码)
- 颠覆性技术的兴起及其影响
- leetcode算法题--石子游戏
- 指针学习笔记(更新中)
- 计算机视觉算法实战书籍推荐_岗位内推 | 字节跳动招聘NLP、计算机视觉、推荐算法实习生...
- html文件头自动生成,基于infinispan源码包HtmlGenerator代码生成器通过指定头部、标题、底部等进行生成HTML文件...
- 垃圾oracle_第 14 章 垃圾回收概述
- STC51-数码管显示
- PHP防注入安全代码
- Procez One 快速入门(4)
- Vue中部署百度富文本编辑器UEditor及其自带的后端,并加入秀米插件
- 2021迅雷web实习生面试经验
- 电脑录屏快捷键是什么?电脑录屏是什么键
- 三极管的工作原理(详细、通俗易懂、图文并茂)
- 解决nginx启动时域名解析失败而导致服务启动失败的问题
- 二、Linux 文件与目录结构、VI/VIM 编辑器(重要)
- oracle 11g rac 恢复,11G RAC 异机恢复至单实例测试
- Activiti实战. 1.2工作流基础
- mysql 赋权限_MySQL赋予用户权限命令总结
- 刚出道的黑客搞瘫美国输油管道!