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()+"\t"+u.getPassword()+"\t"+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;
       }

猜你喜欢

转载自www.cnblogs.com/lone5wolf/p/10937992.html
今日推荐