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的区别

     

  • 相关阅读:
    Android OpenGL ES 2.0 (四) 灯光perfragment lighting
    Android OpenGL ES 2.0 (五) 添加材质
    冒泡排序函数
    javascript object 转换为 json格式 toJSONString
    Liunx CentOS 下载地址
    jquery 图片切换特效 鼠标点击左右按钮焦点图切换滚动
    javascript 解析csv 的function
    mysql Innodb Shutdown completed; log sequence number解决办法
    Centos 添加 yum
    javascript 键值转换
  • 原文地址:https://www.cnblogs.com/cralor/p/9176882.html
Copyright © 2011-2022 走看看