zoukankan      html  css  js  c++  java
  • 使用注解开发

    使用注解开发

    1、配置扫描哪些包下的注解

    <!--指定注解扫描包-->
    <context:component-scan base-package="com.kuang.pojo"/>
    

    @Component+@Value+@Scope

    @Component放在类上,说明这个类被Spring管理了,就是bean !

    @Value属性注入

    @Scope("singleton")
    @Component
    public class User {
        @Value("吴梓超")
        public String name;
    }
    

    等价于

    @Setter
    public class User {
        public String name;
    }
    
    <bean id="user" class="com.chao.pojo.User" scope="singleton">
        <property name="name" value="吴梓超"/>
    </bean>
    

    衍生注解

    为了更好的进行分层,Spring可以使用其它三个注解,功能一样,目前使用哪一个功能都一样。

    写上这些注解,就相当于将这个类交给Spring管理装配了!

    • web层:@Controller
    • service层:@Service
    • dao层:@Repository

    XML与注解比较

    • XML可以适用任何场景 ,结构清晰,维护方便
    • 注解不是自己提供的类使用不了,开发简单方便

    xml与注解整合开发 :推荐最佳实践

    • xml管理Bean

    • 注解完成属性注入

    • 使用过程中, 可以不用扫描,扫描是为了类上的注解

    基于Java类进行配置

    1、编写一个实体类,Dog

    @Setter
    @Getter
    @ToString
    public class User {
        @Value("吴梓超")
        private String name;
    }
    

    2、新建一个config配置包,编写一个MyConfig配置类

    @Configuration  //代表这是一个配置类
    public class Config {
        @Bean//通过方法注册一个bean,这里的返回值就Bean的类型,方法名就是bean的id!
        public User user(){
            return new User();
        }
    }
    

    3、测试

    public static void main(String[] args) {
        ApplicationContext context = new AnnotationConfigApplicationContext(Config.class);
        User user = (User) context.getBean("user");
        System.out.println(user.getName());
    }
    

    4、我们再编写一个配置类!

    @Configuration  //代表这是一个配置类
    public class MyConfig2 {
    }
    

    5、在之前的配置类中我们来选择导入这个配置类

    @Configuration
    @Import(MyConfig2.class)  //导入合并其他配置类,类似于配置文件中的 inculde 标签
    public class MyConfig {
    
       @Bean
       public Dog dog(){
           return new Dog();
      }
    
    }
    

    @Import

    //导入合并其他配置类,类似于配置文件中的 import 标签

  • 相关阅读:
    想做的事情
    js学习笔记2(5章操作方法)
    js学习笔记1(变量、作用域、内存)
    输入框去除默认的文字,jquery方法
    同类型元素,只有一个被选中js
    淘宝分类常见---部分显示和全部显示的js效果
    关于游戏提名信息项目的总结
    20174310隋润起网络对抗免考报告
    2019-2020-2 20174310 隋润起《网络对抗技术》Exp9 Web安全基础
    2019-2020-2 20174310隋润起《网络对抗技术》Exp8 Web基础
  • 原文地址:https://www.cnblogs.com/chaostudy/p/13033560.html
Copyright © 2011-2022 走看看