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;
       }


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM