博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spring~使用注解配置开发(@Component、@Repository、@Service、@Controller)和使用JavaConfig实现配置开发
阅读量:4051 次
发布时间:2019-05-25

本文共 2702 字,大约阅读时间需要 9 分钟。

文章目录

使用注解配置开发

  • 使用注解开发必须导入Context的包和约束, 还有AOP的包, 并且开启自动配置和包的扫描(重要)
  • 创建bean: @Component : 组件放到类上使用, 说明这个类交给spring管理, 也就是spring会自动将这个类创建成一个bean
  • 属性注入: @Value(“XXX”) : 组件进行属性注入, 相当于
@Component@Scope("singleton")public class User {
@Value("Bike") public String name;}
  • 衍生注解: @Component有几个衍生注解, 在我们web开发的时候, 会按照mvc三层去分, 所以他就衍生出一下三个注解

dao层 @Repository

service层 @Service

controller层 @Controller

其实这三个也是组件,功能是和@Component一样的, 主要注解了就说明这个类是托管给spring管理, 只是为了阅读性, 标识出来方便判断, 但是一定要确保在被扫描的包下

@Repositorypublic class UserDao {
}
@Servicepublic class USerService {
}
@Controllerpublic class UserController {
}
  • 自动装配置: @AutoWired和@Resource我在前一篇文章主要就是讲了自动装配
  • 作用域: @Scope(“singleton”) 就会表示这个类使用的是单例模式 换成prototype就是原型模式了
@Component@Scope("singleton")public class User {
@Value("Bike") public String name;}
  • 总而言之:
    xml更加万能, 适用于任何场合
    注解不是自己的类使用不了, 只能修饰自己的类, 对于被修饰的类, 不能引入其他类的bean对象, 维护相对复杂
    所以
    xml:负责管理bean
    注解:负责属性的注入
    我们在使用的过程中, 只需要注意必须要让注解生效, 也就是开启注解支持, 还有就是注解必须被扫描到
  • 实现在spring中去获取bean对象
public class Test {
public static void main(String[] args) {
ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml"); User user = context.getBean("user", User.class); System.out.println(user.name); }}

在这里插入图片描述

使用JavaConfig实现配置

  • 这是一个纯使用java的方式配置spring,可以完全不使用spring xml文件的配置, 全权由java复制, spring4之后的一个核心功能
  • @Configuration这个注解标识的类也会被spring托管, 只是他这个注解修饰的类表示这是一个配置类, 是java代码的一个配置类, 而不是一个xml文件的配置类, 使用这个注解不扫描包也可以使用, 当然也可以在其下面加上@ComponentScan("…")去指定;路径去扫描
  • @Bean在@Configuration这个注解标识的类里面使用, 表示注册一个Bean, 相当于我们xml文件中<bean标签完成的一个bean对象, 其中id就是方法的名称, 方法返回值类型就是class
//表示这个类是java的一个配置类@Configuration//可以搭配使用, 表示去扫描这个路径里的类@ComponentScan("bike.model")public class MyConfig {
//表示返回值是一个bean对象 @Bean public User getUser() {
return new User(); }}
  • 如果有多个类被@Configuration修饰, 也可以导成一个使用 @Import(MyConfig.class)
@Configuration@Import(MyConfig.class)public class MyConfig2 {
@Bean public User User() {
return new User(); }}
  • 如果完全使用配置类去完成配置工作, 我们就必须使用annotationConfig 上下文去获取配置类中的class对象的加载
public class Test1 {
public static void main(String[] args) {
//使用AnnotationConfigApplicationContext去扫描我们添加@Configuration注解的类 // 去获取这个类中所有被@Bean修饰的字段, 表示返回的是一个bean对象 ApplicationContext context = new AnnotationConfigApplicationContext(MyConfig2.class); User user = context.getBean("getUser", User.class); System.out.println(user.getName()); System.out.println("================="); User user1 = context.getBean("User", User.class); System.out.println(user1.getName()); }}

在这里插入图片描述

  • 使用JavaConfig这种方式在spring Boot中使用很常见

转载地址:http://mjsci.baihongyu.com/

你可能感兴趣的文章
VUE-Vue.js之$refs,父组件访问、修改子组件中 的数据
查看>>
Vue-子组件改变父级组件的信息
查看>>
Python自动化之pytest常用插件
查看>>
Python自动化之pytest框架使用详解
查看>>
【正则表达式】以个人的理解帮助大家认识正则表达式
查看>>
性能调优之iostat命令详解
查看>>
性能调优之iftop命令详解
查看>>
非关系型数据库(nosql)介绍
查看>>
移动端自动化测试-Windows-Android-Appium环境搭建
查看>>
Xpath使用方法
查看>>
移动端自动化测试-Mac-IOS-Appium环境搭建
查看>>
Selenium之前世今生
查看>>
Selenium-WebDriverApi接口详解
查看>>
Selenium-ActionChains Api接口详解
查看>>
Selenium-Switch与SelectApi接口详解
查看>>
Selenium-Css Selector使用方法
查看>>
Linux常用统计命令之wc
查看>>
测试必会之 Linux 三剑客之 sed
查看>>
Socket请求XML客户端程序
查看>>
Java中数字转大写货币(支持到千亿)
查看>>