适应配置的方式解决我们刚才的编码操作 -dist结尾的就是spring 的开发包 解压好的 这里面是约束 libs是扎包 三个为一组,实际上只有21个 自己在使用需要导入jar包的时候,选择这种没有任何 一般都是打开这个index.html IOC只能解决程序之间的依赖关系 接下来将用这个工程基础之上做演示.…
创建新项目 修改为jar包的方式 把上一个工程内的代码 java下的com复制过来 由于配置文件没有,所以一运行就会报错 factory文件夹整个删除 dao的实现类 这里删除 测试类保留这两行代码 加入spring 的依赖 导入我们的依赖里面就会出现这些jar包 给的资料里面的jar包和我们在项目里面看到的jar包 不大一样 spring把apache的日志集成组件.集成到了spring的jar包里面了. 查看依赖关系 spring必备的核心容器 创建配置文件 文件名字可以随便起.只要不是中文…
IOC的含义 new的方式创建对象,是主动去找对象.对我的资源独立就变的很难,因为这有明显的依赖关系 第二种方式创建对象.app断开了和资源的联系,.而是去找工厂要一个资源.由工厂负责和资源去的联系,并把想要的对象再转到应用系统 AccountServiceImpl使用上面这行代码也是完全可以找到自己想要的dao的   但是它自己完全找到这个dao的权利放弃了.把这个权利交给了BenFactory.BenFactory再通过一个固定的名称之后.给我们找到我想要的bean对象.这个对象是不是你能用…
新建工程 改成jar包 加入spring的依赖 复制之前的工程代码 再复制配置文件 fac factory整个删除 构造函数也删除.删除后的代码.如下 配置文件中的注释都删除掉 spring中的依赖注入 能注入的类型 今天涉及三类类型和两种方式…
区分单例还是多例对象 单例的几个状态 初始化方法和销毁方法 设置成我们定义的方法 测试 有创建和初始化.但是没有销毁,.对象一直没有销毁的方法 main方法是一切应用程序的入门.当main方法结束后.我们当前应用中线程占用的内存全部释放.这里当前也包含了我们的容器. 此时没来得及调用销毁方法就已经消失了. 只能手动关闭容器. 这里close方法报错了. 这是因为ClassPathXmlApplicationContext用的是ApplicationContext这个接口类型去接收的 多态的特点.…
bean的作用范围调整. 我们的bean通常情况下都是一个单例的模式 Spring是否也知道这些都是单例 构造函数只走了一次.也就是spring这个对象默认情况就是单例的 scope属性 定义bean的范围 默认有这几种形式.默认是单例singleton 选择singleton查看到的效果. 如果改成prototype的话 打印输出了两次对象. prototype就是多例的 常用的是singleton单例和prototype多例 global session的含义 当用户访问量大.访问量一台服务…
目前这里能调用是因为,在service的实现类里面,new了一个dao的对象 正常情况下 这里不应该是new一个对象,应该等于null或为空 设置为空侯再运行就会报错 出错的原因是这里为null 需要讲完Bean的细节后.再来看上面的代码. 新建一个项目 配置打包方式 加入spring 的依赖 复制03里面的代码进来. 复制到04的里面 dao的包整个删除 service中不再调用dao类.都删除 复制bean.xml到新项目里 spring对bean的管理细节 第一种方式创建bean Serv…
核心容器的两个接口.ApplicationContext和BeanFactory 怎么知道对象被创建了呢 我们只需要在实现类里面构造函数内打印输出一段话 然后再这里加上一个断点 运行程序,光标停在这个位置 往下走一步.对象被创建了.这就是加载了配置文件.对象实例立马被创建了. BeanFactory延迟加载的方式 右键BeanFactory BeanFactory有个过时的实现是XmlBeanFactory 创建XmlBeanFactory里面参数有要求 那就在上面定义需要的参数Resource…
再复制一份,改名3 常用的注入方式,这里选择set saveAccount方法输出所有的对象 map需要导包 配置xml 集合类型的值配置方式 在property标签里面再写标签 这里选择array.array代表数组 里面用value配置 测试.访问accountService3 list Set 把第一个改成set 第二个改成array,第三个改成list 再次执行测试 接着往下写.myMap用map标签.entry的两种写法 props标签 把myMap的内容.复制到 props复制到了m…
复制AccountServiceImpl类改名叫做AccountServiceImpl2 生成三个属性值的set方法.注入只需要set方法,并不需要get方法 配置bean,用到property这个标签 属性有name.value和ref这三个属性 输入name 提示的选择项有 age\birthday\name这三个 把这个setName改成setUserName name属性的提示里面就成了username 也就是在找name的值的时候并不管拟变量定义的是什么,只关心set方法叫什么,且去掉…