zoukankan      html  css  js  c++  java
  • spring常用管理bean注解

    spring提供了多个注解声明Bean为spring管理的Bean

    @Controller  声明此类是一个MVC类,通常与@RequestMapping一起使用

    @Controller
    @RequestMapping("user")
    public class UserController {
    
        @RequestMapping("get/{id}")
        public String getUser(@PathVariable String id){
            return "";
        }
    }

    如果访问/user/get/1,将调用getUser方法,并把参数1传给id。

    @Service  声明此类是一个业务处理类,通常与@Transactional一起使用

    @Service
    @Transactional
    public class UserServiceImpl implements UserService {
        public void order(...){
            ...
        }
    }

    @Repository  声明此类是一个dao类,访问数据库

    @Repository
    public class UserDao implements CrudDao<User,String> {
            ...
        }
    }

    @RestController  等于@Controller+@ResponseBody,用于REST服务,可返回json格式字符串

    @Component  声明此类是一个Spring管理的类,通常用于无法用上述注解描述的spring管理类

    @Configuration  声明此类是一个配置类,通常与@Bean 配合使用

    @Configuration
    public class DataSourceConfig {
    
        @Bean(name="dataSource")
        public DataSource dataSource(Environment env){
            HikariDataSource ds=new HikariDataSource();
            ds.setDriverClassName(env.getProperty("spring.dataSource.driver-class-name"));
            ds.setJdbcUrl(env.getProperty("spring.dataSource.url"));
            ds.setUsername(env.getProperty("spring.dataSource.username"));
            ds.setPassword(env.getProperty("spring.dataSource.password"));
            return ds;
        }
    }

    上例DataSourceConfig 是一个spring容器配置类,配置了HikariDataSource。

    @Bean  作用在方法上,声明该方法执行的结果返回结果是一个spring容器管理的Bean,参考上例

    spring负责实例化Bean,可以提供一系列回调函数,进一步配置Bean

    @PostConstruct  当bean被容器初始化后会调用@PostConstruct注解的方法

    @Component
    public class ExampleBena {
      
          @PostConstruct    
          public void init(){...}      
    }  

    @PreDestory  在容器被销毁之前调用@PreDestory注解的方法

    @Service
    public class ExampleBena {
      
          @PreDestory
          public void clear(){...}      
    }  

    spring有两种方式来引用容器管理的Bean,一种是根据名字,为每个管理的bean指定一个名字,随后可以通过名字引用此Bean

    @Service
    @Qualifier("exampleBean")
      public class ExampleBean {
    
    }

    在其他Bean中使用注解@Qualifier来引用

    @Service
    public class AnotherExampleBean {
    
      @Qualifier("exampleBean")    
        ExampleBean bean;
    }

    另一种是根据类型,使用注解@Autowired

    @Service
    public class ExampleBean {
    
    }
    
    @Service
    public class AnotherExampleBean {
      @Autowired    
        ExampleBean bean;
    }

    在一个spring管理的Bean中,可以通过@Autowired声明对其他Bean的引用,作用于属性或者构造函参数,甚至是方法调用参数上。

     上面两个注解是spring提供的,还有一个@Resource注解具体参考  Spring注解@Resource和@Autowired的区别

     

  • 相关阅读:
    Button 使用Command 按钮置灰未更新
    C# TextBox 焦点
    MultiTigger 绑定异常处理
    C# 获取程序路径
    Linux 权限设置chmod
    WPF SpreadSheetGear电子表单
    WPF 窗口
    Excel公式 提取文件路径后缀
    C#/VB.NET 获取电脑属性(硬盘ID、硬盘容量、Cpu序列号、MAC地址、系统类型)
    DevExpress Carousel 设置水平滑动列表
  • 原文地址:https://www.cnblogs.com/cralor/p/9176882.html
Copyright © 2011-2022 走看看