spring注解

  • spring 原始注解
    • 1.1 @Component注解
    • 1.2 @Controller,@Service,@Repository同上
    • 1.3 注解方式依赖注入
  • spring 新注解
    • 1. 用来解析配置类,利用配置类替代xml
  • 注解代替了xml的繁琐配置

spring 原始注解

1.1 @Component注解

<!--spring 使用注解创建对象 component-scan 组件扫描器 用来扫描包下面的注解 -->
<context:component-scan base-package="com.lovely"/>
  • 利用ClassPathXmlApplicationContext可创建对象
package com.lovely.test;
@Component("app")
public Class App {// coding...
}
public static void main(String[] args) {ClassPathXmlApplicationContext application =new ClassPathXmlApplicationContext("classpath:applicationContext.xml");App app = (App) application.getBean("app");// sout(app);
}

1.2 @Controller,@Service,@Repository同上

1.3 注解方式依赖注入

    // 利用注解进行 属性注入// 1. @Autowired // 根据类型/* 2. @Autowired // 根据类型 进行依赖注入@Qualifier("userDao") // 与autowired根据名称进行依赖注入*/@Resource // 3. 按照名称注入private UserDao userDao;/*public void setUserDao(UserDao userDao) {// bean 的 依赖注入 配置xml property 通过setthis.userDao = userDao;}*/// 4. 对普通值注入 组件扫描器 扫描spring容器中得key 拿value@Value("${jdbc.driver}")private String driver;@Value("a simple string...")private String str;

spring 新注解

1. 用来解析配置类,利用配置类替代xml

  • 具体使用
package com.lovely.config;import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;/*** @author echo lovely* @date 2020/7/22 16:59* 用于替代applicationContext.xml的配置核心类*/@Configuration // 标志该类是spring的核心配置类 替换xml
@ComponentScan("com.lovely") // 扫描com.lovely包下的spring注解 替换<context:component-scan base-package="com.lovely"/>
@Import(DataSourceConfiguration.class) // 引入 DataSourceConfiguration 配置类
public class SpringConfiguration {}
  • 以数据源解析为例子
/*** @author echo lovely* @date 2020/7/22 17:03* 数据源配置类*/
// 加载配置文件 相当于 property-placeholder
@PropertySource("classpath:jdbc.properties")
public class DataSourceConfiguration {@Value("${jdbc.driver}")private String driver;@Value("${jdbc.url}")private String url;@Value("${jdbc.userName}")private String username;@Value("${jdbc.userPassword}")private String password;@Bean("druidDataSource") // spring 会将当前方法的返回值以指定名称(druidDataSource) 储存到spring容器中public DataSource getDataSource() {DruidDataSource dataSource = new DruidDataSource();dataSource.setDriverClassName(driver);dataSource.setUrl(url);dataSource.setUsername(username);dataSource.setPassword(password);System.out.println(dataSource);return dataSource;}}
  • 测试demo
package com.lovely.web;import com.lovely.config.SpringConfiguration;
import com.lovely.service.UserService;
// import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
// import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.stereotype.Controller;/*** @author echo lovely* @date 2020/7/21 16:15*/// 在web层上实例化bean
@Controller("userController")
public class UserController {public static void main(String[] args) {/*ClassPathXmlApplicationContext app =new ClassPathXmlApplicationContext("classpath:applicationContext.xml");*/AnnotationConfigApplicationContext app = new AnnotationConfigApplicationContext(SpringConfiguration.class);UserService user = (UserService) app.getBean("userService");user.service();/*Object obj = app.getBean("druidDataSource");System.out.println(obj);*/app.close();}}

利用spring注解创建bean相关推荐

  1. Spring注解创建Bean的几种方式

    Spring注解创建Bean的几种方式 1.@Component系列 @Component @Service @Repository @Controller @Configuration 2. 依附于 ...

  2. spring boot java app_利用spring boot创建java app

    利用spring boot创建java app 背景 在使用spring框架开发的过程中,随着功能以及业务逻辑的日益复杂,应用伴随着大量的XML配置和复杂的bean依赖关系,特别是在使用mvc的时候各 ...

  3. Spring注解定义 bean 的12种方法

    前言 在庞大的java体系中,spring有着举足轻重的地位,它给每位开发者带来了极大的便利和惊喜.我们都知道spring是创建和管理bean的工厂,它提供了多种定义bean的方式,能够满足我们日常工 ...

  4. 在Servlet中获取Spring注解的bean

    最近由于项目中出现了Servlet调用Spring的bean,由于整个项目中所有的bean均是注解方式完成,如@Service,@Repository,@Resource等,但是Spring的容器管理 ...

  5. 零配置 之 Spring注解实现Bean定义

    转载自  零配置 之 12.3 注解实现Bean定义 --跟我学spring3 12.3  注解实现Bean定义 12.3.1  概述 前边介绍的Bean定义全是基于XML方式定义配置元数据,且在[1 ...

  6. 零配置 之 Spring 注解实现Bean依赖注入

    转载自  [第十二章]零配置 之 12.2 注解实现Bean依赖注入 --跟我学spring3 12.2  注解实现Bean依赖注入 12.2.1  概述 注解实现Bean配置主要用来进行如依赖注入. ...

  7. java 获取bean的注解_如何获取spring 注解的bean

    展开全部 不用e69da5e887aa62616964757a686964616f31333337613131配置xml,直接java代码实现,参考代码如下:public class GetAppli ...

  8. 编码实现Spring 利用@Resource注解实现bean的注入,xml实现基本数据类型的注入

    首先分析. 1: 肯定要利用dom4j读取xml配置文件,将所有的bean的配置信息读取出来 2: 利用反射技术,实例化所有的bean 3: 写注解处理器, 利用注解和内省实现依赖对象的注入. 4: ...

  9. spring AbstractBeanDefinition创建bean类型是动态代理类的方式

    1.接口 Class<?> resourceClass 2.获取builder BeanDefinitionBuilder builder = BeanDefinitionBuilder. ...

最新文章

  1. opwnert挂载摄像头
  2. 业务时间做开发,使用jeecg框架
  3. [转载] 树莓派并行控制电机_使用由并行端口控制的软盘驱动步进电机的相机摇摄器
  4. pandas处理mysql 展现wpf_Pandas DataFrame使用多列聚合函数
  5. [渝粤教育] 陕西科技大学 食品营养安全与健康 参考 资料
  6. MacOS下搭建Fabric开发环境
  7. zmodem transfer canceled by remote side 段错误(吐核)
  8. JSP面试题(重要)
  9. java order()_Java Comparator naturalOrder()用法及代码示例
  10. 表示背景色彩的html是,[html颜色代码]HTML语言中,设置背景颜色的代码是?
  11. 全栈工程师就无敌吗?真的能做到个人即团队吗?
  12. 频率超出范围黑屏Linux,Win10专业版分辨率超出工作频率范围黑屏怎么办
  13. html和js画圣诞树图片,教你如何把JavaScript代码写成圣诞树
  14. 搭建DVWA出现错误:DVWA System error - config file not found.
  15. Android一键锁屏,去除锁屏密码
  16. mac修改默认python版本为python3
  17. LaTeX 使用tips与EDAS论文提交
  18. 【代码审计】MIPCMS 远程写入配置文件Getshell
  19. python货币转换编程_Python实现制度转换(货币,温度,长度)
  20. #4051. ABBA

热门文章

  1. 玩转oracle 11g(48):oracle命令窗口执行sql语句
  2. java学习(149):字符输入流
  3. Vue 中使用watch监听$route 无效问题
  4. 8s nfs 挂载文件_把你的树莓派家庭实验室变成一个网络文件系统 | Linux 中国
  5. Zabbix 3.0 配置企业微信报警(配置zabbix-web)
  6. 【EasyNetQ】- 发送接收
  7. string、stringbuilder、stringbuffer区别
  8. 文件查找_tar_ext34_swap
  9. 11.SolrJ索引操作
  10. Leetcode016 3Sum Closest