基于注解的方式配置bean
在 classpath 中扫描组件
组件扫描(component scanning): Spring 能够从 classpath 下自动扫描, 侦测和实例化具有特定注解的组件.
特定组件包括:
@Component: 基本注解, 标识了一个受 Spring 管理的组件
@Respository: 标识持久层组件
@Service: 标识服务层(业务层)组件
@Controller: 标识表现层组件
对于扫描到的组件, Spring 有默认的命名策略: 使用非限定类名, 第一个字母小写. 也可以在注解中通过 value 属性值标识组件的名称
需要导入aop的包
<?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/beans
http://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.0.xsd"><!-- 开启注解扫描 --><context:component-scan base-package="com.learn.spring" > </beans>
package com.learn.spring.controller;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;import com.learn.spring.service.UserService;/*** 表现层的组件* * @Controller的作用:* 等价于在xml配置文件中: <bean id="userController" class="com.learn.spring.controller.UserController"></bean>* @Controller注解默认的id值是类名首字母小写,如果想要自己指定,可以使用value属性来指定* @Controller(value="id") / @Controller("id")*/
@Controller
//@Component
public class UserController {}
package com.learn.spring.service;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Service;import com.learn.spring.dao.UserDao;/*** 业务层的组件**/
@Service
public class UserService { }
package com.learn.spring.dao;public interface UserDao {}
package com.learn.spring.dao;import org.springframework.stereotype.Repository;@Repository
public class UserDaoJdbcImpl implements UserDao{}
package com.learn.spring.test;import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;import com.learn.spring.controller.UserController;
import com.learn.spring.dao.UserDao;
import com.learn.spring.service.UserService;public class TestAnnotation {public static void main(String[] args) {//.1实例化ioc容器ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");//2.获取beanUserController userController =(UserController) ctx.getBean("userController");System.out.println("userController:" + userController);// UserService userService = (UserService) ctx.getBean("userService");
// System.out.println("userService: "+ userService);
//
// UserDao userDao = (UserDao)ctx.getBean("userDaoJdbcImpl");
// System.out.println("userDao:" +userDao);}
}
基于注解的方式配置bean相关推荐
- 【Spring5】004-IOC容器+基于注解的方式实现Bean管理
文章目录 1.什么是注解 2.Spring 针对 Bean 管理中创建对象提供的注解 3.基于注解方式实现对象创建 3.1.执行流程介绍 4.开启组件扫描配置的细节问题 5.基于注解方式实现属性注入 ...
- 基于注解的方式装配bean
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.sp ...
- 基于注解的 AOP 配置
基于注解的 AOP 配置 bean.xml <?xml version="1.0" encoding="UTF-8"?> <beans xml ...
- JavaWeb学习总结(四十八)——模拟Servlet3.0使用注解的方式配置Servlet
一.Servlet的传统配置方式 在JavaWeb开发中, 每次编写一个Servlet都需要在web.xml文件中进行配置,如下所示: 1 <servlet> 2 <servlet- ...
- java web学习总结(二十一) -------------------模拟Servlet3.0使用注解的方式配置Servlet...
一.Servlet的传统配置方式 在JavaWeb开发中, 每次编写一个Servlet都需要在web.xml文件中进行配置,如下所示: 1 <servlet> 2 <servlet- ...
- 基于注解的 IOC 配置
基于注解的 IOC 配置 学习基于注解的 IoC 配置,大家脑海里首先得有一个认知,即注解配置和 xml 配置要实现的功能都是一样 的,都是要降低程序间的耦合.只是配置的形式不一样. 关于实际的开发中 ...
- spring 基于注解的控制器配置
http://ttaale.iteye.com/blog/787586 spring 基于注解的控制器配置 博客分类: spring SpringBeanServletMVCWeb 13.12. 基于 ...
- 缓存初解(五)---SpringMVC基于注解的缓存配置--web应用实例
之前为大家介绍了如何使用spring注解来进行缓存配置 (EHCache 和 OSCache)的简单的例子,详见 Spring基于注解的缓存配置--EHCache AND OSCache 现在介绍一下 ...
- Spring基于注解的方式一
Spring基于注解的方式一 Spring注解简介 之前的时候我们学习的Spring都是基于Spring配置文件的形式来编写,现在很多的情况下使用SpringBoot的时候是基于注解的形式,这里我们首 ...
最新文章
- mysql事务处理用法与实例详解
- 用C语言编写:判断一个≥2的整型数是否存在于斐波那契数列中?
- foreach对集合的输出作用
- mysql实现查询最近7天的数据
- 应届硕士研究生算法岗秋招总结
- 最新综述:对话式检索数据集汇总
- 线性表的顺序存储 c语言表达,线性表的基本操作顺序存储(C语言).doc
- 插入递归引用Identity列的记录
- 用python画多来a梦-python3里tkinter中canvas(画板)案例之哆啦A梦
- python编程实战:暴力破解WIFI密码!亲测运行有效!
- 基于cropper.js封装vue在线图片裁剪组件
- vue3.0开发环境搭建及vue2.x和vue3.x的区别
- 解决eclipse mars2中不能设置tomcat8.5
- Excel - VLOOKUP 函数的精确查找和近似查找
- 淘宝/天猫关键词搜索采集接口分析商品价格走势(商品列表,商品销量,商品价格,分类ID采集精准商品数据)接口代码对接流程
- qq音乐html5测试性格,根据你的听歌习惯测试你的性格
- leetcode刷题目录总结
- java web设置首页_java web设置默认首页方法
- 高物实验报告计算机模拟高分子,高分子物理课程实验报告(.doc
- Spring Cloud Alibaba微服务架构实战教程—07集成knife4j生成Api文档