spring 配置文件 --bean


bean标配的基本配置
        id:Bean实例在Spring容器中的唯一标识
        class Bean的全限定名
        scope
            1.当scope的取值为singleton时
                Bean的实例化个数: 1个
                Bean的实例化时机:当Spri ng核心文件被加载时,实例化配置的Bean实例
                Bean的生命周期:
                对象创建:当应用加载,创建容器时,对象就被创建了
                对象运行:只要容器在,对象一直活着
                对象销毁:当应用卸载,销毁容器时,对象就被销毁了
            2.当scope的取值 为prototype时
                Bean的实例化个数:多个
                Bean的实例化时机:当调用getBean()方法时实例化Bean
                Bean的生命周期:
                对象创建:当使用对象时,创建新的对象实例
                对象运行:只要对象在使用中,就一直活着
                对象销毁:当对象长时间不用时,被Java 的垃圾回收器回收了
        * init-method:指定类中的初始化方法名称
        * destroy-method:指定类中销毁方法名称
        
        
        实例化bean对象
            1,提供无参构造方法(默认)
            2,静态工厂实例化bean
                1、创建工厂类
                    public class BeanDaoFactory {
                        public static BeanDao getBeanDao(){
                            System.out.println("bean dao factory running ...");
                            return new BeanDaoImpl();
                        }
                    }
                2、配置bean
                
            3、实例工厂实例化bean
                1、定义实例工厂
                    public class BeanDaoFactory {
                        public BeanDao getBeanDao(){
                            System.out.println("bean dao factory running ...");
                            return new BeanDaoImpl();
                        }
                    }
                2、配置bean
                    
                    
                    
                    

                测试代码
                public class App {
                    public static void main(String[] args) {
                        ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
                        BeanDao beanDao = (BeanDao) context.getBean("beanDao");
                        beanDao.save();
                    }
                }

        bean依赖注入的三种方式
            set方法
                1.set方法
                    public class UserServiceImp implements UserService {
                        private UserDao userDao;
                        
                        public void setUserDao(UserDao userDao){
                            this.userDao = userDao;
                        }

                        @Override
                        public void save() {
                            userDao.save();
                        }
                    }
                2.配置Spring容器调用set方法进行注入
                       
                        
                            
                            
                        

                    P命名空间注入
                    P命名空间注入本质也是set方法注入,但比起上述的set方法注入更加方便,主要体现在配置文件中,如下:
                        1.定义约束头,引入p命名空间:
                            xmlns:p="http://www.springframework.org/schema/p"
                        2.修改注入方式:
                        
                            
                            

                        

                        2.1 构造方法

                            1.在UserServiceImpl中创建有参构造

                                public class UserServiceImp implements UserService {
                                    private UserDao userDao;

                                    public UserServiceImp(UserDao userDao){
                                        this.userDao = userDao;
                                    }

                                    @Override
                                    public void save() {
                                        userDao.save();
                                    }
                                }

                            2. 配置Spring容器调用有参构造时进行注入

                                
                                
                                    
                                    
                                


                    3.1注入普通数据类型
                            1.普通数据类型
                            public class UserDaoImpl implements UserDao {
                                private String username;
                                private Integer age;

                                public String getUsername() {
                                    return username;
                                }

                                public void setUsername(String username) {
                                    this.username = username;
                                }

                                public Integer getAge() {
                                    return age;
                                }

                                public void setAge(Integer age) {
                                    this.age = age;
                                }

                                public void save(){
                                    System.out.println("age="+age+" username=" +username);
                                }
                            }
                            2.配置文件
                                
                            
                                    
                                    
                                


                    3.2注入集合数据类型
                            使用set注入
                                在UserDaoimpl添加集合  
                                 private List strList;
                                private Map userMap;
                                private Properties properties;

                                public void setStrList(List strList) {
                                    this.strList = strList;
                                }

                                public void setUserMap(Map userMap) {
                                    this.userMap = userMap;
                                }

                                public void setProperties(Properties properties) {
                                    this.properties = properties;
                                }

                        2.配置文件
                                
                                    
                                    
                                

                                
                                    
                                    
                                


                                
                                    
                                            
                                                    aaa
                                                    bbb
                                                    ccc
                                            


                                    

                                    
                                            
                                                    v1
                                                    v2
                                                    v3
                                            

                                    

                                    
                                            
                                                    
                                                    
                                            

                                    

                        
                               

    
                        
                    4.引入其他的配置文件    
                    

相关