zoukankan      html  css  js  c++  java
  • spring

    Spring:是一个开源的控制反转(Inversion of Control,Ioc)和面向切面(AOP)的容器框架,主要目的是简化企业开发
     控制反转:应用本身不负责依赖对象的创建和维护,依赖对象的创建和维护由外部容易负责
     面向切面:实现权限拦截,运行期监控.
     spring官网:http://www.springsource.org/download
     
     工程新增jar包:
      在工程名上点击右键-->properties-->java build path
      在java build path的上方边框中选Libraries-->Add Library...-->MyEclipse Libraries-->选择相应的jar包即可
     
     1.没有提示的原因以及解决方案:
       原因 1:applicationContext.xml配置文件中的格式定义文件xxx.xsd在网络上
        2:myEclipse由于路径设置问题,因此内部的映射不起作用
       方案 1:到myEclipse安装目录搜索spring-beans-3.0.xsd
        2:找到之后把spring-beans-3.0.xsd文件拷贝到其他位置,该位置的路径中不能有.或者..
        3:window-->preference-->myeclipse-->file and editors-->xml-->xml catalog-->add
         location位置:fileSystem-->找到拷贝的xsd文件
         key type位置:schema location
         key位置               :填写http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
        4:重新打开配置文件.提示有效
        
     2:spring提供两种容器:
      1.适用于小型项目的容器:
       特点:在容器初始化的时候,不会初始化容器中的对象,而是在用户请求某个对象的时候再行创建,创建完对象放入对象池
        下次访问本对象时,直接从对象池中获取.
       (1)采用系统文件路径方式创建BeanFactory接口对象
        Resource resource = new FileSystemResource("D:\\MyEclipse8.5代码\\test_spring\\src\\applicationContext.xml");
        BeanFactory factory = new XmlBeanFactory(resource);
       (2)采用工程路径目录方式创建BeanFactory接口对象
        Resource resource = new ClassPathResource("applicationContext.xml");
        BeanFactory factory = new XmlBeanFactory(resource);
      2.适用于大型项目的容器(ApplicationContext)
       特点:在容器初始化的时候,自动加载里面的所有资源,使用时直接提供
       (1)采用系统文件路径方式构建容器
        ApplicationContext ac = new FileSystemXmlApplicationContext("D:\\MyEclipse8.5代码\\test_spring\\src\\applicationContext.xml");
       (2)采用工程目录方式构建容器
        ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
       
       <bean scope="prototype"> scope:singleton(默认):容器初始化则创建一个对象放入容器中,无论怎么取得,都返回同以对象  prototype(原型):每次请求返回一个新对象 -->  
        
     3:setter注入:
      java类中定义属性:
       //简单类型的注入
       private String name;
       private int age;
       private Date birth;
       public void setName(String name) {
        this.name = name;
       }
       public void setAge(int age) {
        this.age = age;
       }
       public void setBirth(Date birth) {
        this.birth = birth;
       }
       //注入List
       private List list;
       public void setList(List list) {
        this.list = list;
       }
       //注入Map
       private Map map;
       public void setMap(Map map) {
        this.map = map;
       }
       //注入Set
       private Set set;
       public void setSet(Set set) {
        this.set = set;
       }
       //注入Properties
       private Properties prop;
       public void setProp(Properties prop) {
        this.prop = prop;
       }
       //定义构造器,构造器注入
       private String conName;
       private int conAge;
       public AImple(String conName,int conAge){
        this.conName=conName;
        this.conAge=conAge;
       }
      配置文件applicationContext.xml中注入属性和值
       <bean id="A" class="bean.AImple">
        <property name="name" value="诡异"></property>
        <property name="age" value="24"></property>
        <property name="birth" ref="now"></property>
        <property name="list">
         <list>
          <value>大孩</value>
          <value>小孩</value>
          <value>黑孩</value>
          <value>白孩</value>
         </list>
        </property>
        <property name="map">
         <map>
          <entry key="name" value="小黑"></entry>
          <entry key="age" value="22"></entry>
         </map>
        </property>
        <property name="set">
         <set>
          <value>嘿嘿</value>
          <value>嘻嘻</value>
         </set>
        </property>
        <property name="prop">
         <props>
          <prop key="driverName">oracle.jdbc.driver.OracleDriver</prop>
          <prop key="url">jdbc:oracle:thin:@localhost:1521:moluo</prop>
         </props>
        </property>
        <constructor-arg type="java.lang.String" value="诡异小孩"></constructor-arg>
        <constructor-arg type="int" value="24"></constructor-arg>
       </bean>
       <bean id="now" class="java.util.Date"></bean>

  • 相关阅读:
    2016/01/14开始学习git:标签管理:操作标签
    2016/01/14开始学习git:标签管理:创建标签
    2016/01/14开始学习git:分支管理:多人协作
    2016/01/14开始学习git:分支管理:Feature分支
    2016/01/13开始学习git:分支管理:Bug分支
    python-pygame的触碰方法
    python游戏pygame模块画圆及鼠标拖拽移动方法介绍
    python的EasyGui模块简单用法介绍
    python用递归函数解汉诺塔游戏
    python函数的几种参数类型
  • 原文地址:https://www.cnblogs.com/liaren/p/spring.html
Copyright © 2011-2022 走看看