Spring_5_组件自动扫描机制
来源:互联网 发布:并发测试软件 编辑:程序博客网 时间:2024/06/08 08:45
Web.xml的配置、PersonDao类、PersonDao类与1中相同。
自动扫描机制就是,它可以在类路径下寻找标注了@Component、@Service、@Controller、@Repository注解的类,并把这些类纳入Spring容器中管理。
1)PersonDaoBean 类:
@Repositorypublic class PersonDaoBean implements PersonDao {public void add() {System.out.println("执行personDao中的add()方法!");}}
2)beans.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/beanshttp://www.springframework.org/schema/beans/spring-beans-2.5.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context-2.5.xsd"><!-- 添加的自动扫描组件,base-package为要扫描的包(包括子包)--><context:component-scan base-package="springDaoBean" /></beans>
3)PersonServiceBean 类:
//@Service// 直接访问PersonServiceBean类@Service("personService")// 先访问personService类然后跳转到PersonServiceBean类@Scope("prototype")// 每次用PersonServiceBean类都会生成一个新的对象public class PersonServiceBean implements PersonService {private PersonDao personDao;@PostConstruct// 当实例化PersonServiceBean类时会调init方法public void init() {System.out.println("初始化");}@PreDestroy// 当正常关闭资源时回调用destroy方法public void destroy() {System.out.println("关闭资源");}public void save() {personDao.add();}}
4)springTest 类:
public class springTest {@Testpublic void instanceSpring() {AbstractApplicationContext ctx = new ClassPathXmlApplicationContext("springXml/beans.xml");// 使用@Service直接放问PersonServiceBean// PersonService personServiceBean = (PersonService) ctx.getBean("personService");// System.out.println(personServiceBean);// 使用@Service("personService")间接访问PersonServiceBean// PersonService personService = (PersonService)ctx.getBean("personService");// System.out.println(personService);// 在PersonServiceBean类中可以添加@scope("prototype")是每次实例化都生成一个新的对象// PersonService personService1 = (PersonService)ctx.getBean("personService");// PersonService personService2 = (PersonService)ctx.getBean("personService");// System.out.println(personService1 == personService2);// 在personServiceBean中添加@PostConstruct, 实例化类对象时会调用init()方法PersonService personServiceBean = (PersonService)ctx.getBean("personService");System.out.println(personServiceBean);// 在personServiceBean中添加@PreDestroy,在正常关闭资源时会调用destroy()方法ctx.close();}}
@Service用于标注业务层组件,@Controller用于标注控制层组件(如struts中的action)、@Repository用于标注数据访问组件(DAO组件)、@Component扫描那些不好归类的组件。
3 0
- Spring_5_组件自动扫描机制
- spring_5_自动装配
- Spring的组件自动扫描机制
- Spring的组件自动扫描机制
- Spring的组件自动扫描机制
- Spring的组件自动扫描机制
- Spring 的组件自动扫描机制
- Spring的组件自动扫描机制
- Spring的组件自动扫描机制
- Spring的组件自动扫描机制
- spring2.5提供的组件自动扫描机制
- Spring组件自动扫描
- Spring 自动扫描组件
- spring 自动扫描组件
- Spring自动组件扫描
- Spring自动组件扫描
- Spring自动组件扫描
- spring自动扫描机制
- POJ 1458 LCS模板
- MySQL慢查询开启和使用
- android之android.intent.category.DEFAULT的用途和使用
- Glut处理鼠标事件
- android 点击空白 隐藏软键盘
- Spring_5_组件自动扫描机制
- cellsrvstat
- 栈、队列系列之实现一个包含min函数的栈
- Android 性能优化
- android搜索框实时显示 |中文转拼音
- IClass与电源管理(主菜)
- android studio引入第三方jar包
- MySQL socket问题
- “通过管理风险与机会,完善质量管理”顶级质量大师质量讲座录音文字稿