zoukankan      html  css  js  c++  java
  • Spring的java注解配置

    一、Java注解配置是Spring4.x推荐的配置方式,可以完全替代xml配置。SpringJava注解配置方式是通过 @Configuration @Bean 这两个注解实现的:
      1@Configuration 作用于类上,相当于一个xml配置文件;
      2@Bean 作用于方法上,相当于xml配置中的<bean>
    示例:这两个注解的用法
     1、创建实体类:User.java
       public class User implements Serializable {
            private static final long serialVersionUID = 1L;
            private String username;
            private String password;
            private Integer age;
            //省略set/get方法
         }
     
     2、创建Dao层,模拟数据库访问:UserDao.java
         public class UserDao {
            public List<User> findAll(){
               List<User> users = new ArrayList<User>();
               for(int i=1;i<10;i++) {
                    User user = new User();
                    user.setUsername(i+"号");
                    user.setPassword(i+"1234");
                    user.setAge(i+21);
                    users.add(user);
               }
               return users;
            }
          } 
      3、创建Service层:UserService.java
        @Service
        public class UserService {
           @Autowired
           private UserDao userDao;
         
           public List<User> findAllUser(){
               
               return userDao.findAll();
             }
         }
     
      4、创建注解类,相当于spring的主配置文件applicationContext.xml
        @Configuration   //通过该注解来表明该类是一个Spring的配置,相当于一个xml文件
        @ComponentScan(basePackages="com.boot.service")  //配置扫描包
        public class SpringAnnotation {
           @Bean  // 通过该注解来表明是一个Bean对象,相当于xml中的<bean>
           public UserDao getUserDao()
            {
               return new UserDao();
            }
         }
     
      5、测试:
       public class Main {
         public static void main(String[] args) {
            AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(SpringAnnotation.class);
               UserService userService = context.getBean(UserService.class);
               List<User> list = userService.findAllUser();
               for(User u : list) {
                    System.out.println(u.getUsername()+" "+u.getPassword()+" "+u.getAge());
               }
               context.close();
          }
        }
     6、从以上的示例中可以看出,使用Java代码就完美的替代xml配置文件,并且结构更加的清晰。
     
    二、读取外部的资源配置文件,通过@PropertySource可以指定读取的配置文件,通过@Value注解获取值,具体用法:
       @PropertySource(value= {"classpath:jdbc.properties"})
       public class SpringAnnotation {
          @Value("${jdbc.driver}")
          private String driver_class;
         
          @Value("${jdbc.url}")
          private String jdbc_url;
         
          @Value("${jdbc.username}")
          private String username;
         
          @Value("${jdbc.password}")
          private String password;
         
          @Bean
          public DataSource getDataSource() {
               DataSource dataSource = new DataSource();
               dataSource.setDriverClassName(driver_class);
               dataSource.setUrl(jdbc_url);
               dataSource.setUsername(username);
               dataSource.setPassword(password);
               return dataSource;
            }
         
          @Bean
          public SqlSessionFactoryBean getSqlSessionFactory() throws Exception {
               SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();
               sessionFactory.setDataSource(this.getDataSource());  
               return sessionFactory;
           }
  • 相关阅读:
    Bootstrap3.0入门学习系列教程
    Python——五分钟理解元类(metaclasses)
    Python内置模块和第三方模块
    vs的任务列表
    web.config or app.config 中configSections配置节点
    将查询到的数据导出到Excel终结版
    MVC的一些常用特性,持续更新中。。。
    前端——扫码枪扫码
    前后台数组互传问题解答
    C# 实体/集合差异比较,比较两个实体或集合值是否一样,将实体2的值动态赋值给实体1(名称一样的属性进行赋值)
  • 原文地址:https://www.cnblogs.com/lone5wolf/p/10937992.html
Copyright © 2011-2022 走看看