麻烦帮忙看下spring配置好麻烦。

最近的工作需求改了又改,麻烦的狠,就暂停更博,之前一周写的这个框架搭建完成,有点心得,记录一下

之前网上有搭建的这个框架但是是用eclipse,我们今天就用myeclipse搭建一下框架

到现在为止所有的框架搭建完美成功

jar包都在这里可以复制过来,免得报错

tomcat启动,就会出现登录界面

登录成功过后就会进入首界面,这是我下载bootstrap模板,修改修改可以做来简单的系统





暂时做到这些,后期我有时间会在做一些功能在这个搭的框架里的。

set注入和构造注入有时在做配置时比较麻烦。所以框架为了提高开发效率,提供自动装配功能,简化配置。Spring框架式默认不支持自动装配的,要想使用自动装配需要修改spring配置文件中<bean>标签的autowire属性。自动装配属性有5个值可选,分别代表不同的含义。 

 从Spring环境中获取目标对象时,目标对象中的属性会根据名称在整个Spring环境中查找<bean>标签的id属性值。如果有相同的,那么获取这个对象,实现关联。

 整个Spring环境:表示所有的spring配置文件中查找,那么id不能有重复的。

 从Spring环境中获取目标对象时,目标对象中的属性会根据类型在整个spring环境中查找<bean>标签的class属性值。如果有相同的,那么获取这个对象,实现关联。

如果属性为单一类型的数据,那么查找到多个关联对象会发生错误。

如果属性为数组或集合(泛型)类型,那么查找到多个关联对象不会发生异常。

 使用构造方法完成对象注入,其实也是根据构造方法的参数类型进行对象查找,相当于采用byType的方式。如果没找到则抛出异常

默认情况下,不自动装配,通过“ref”attribute手动设定。 

需要什么属性。自动装配存在很多不正确的装配问题,例如错误装载属性、“byType”属性和“constructor”属性对相同类型参数无法判断等。当然,将自动装配和手动装配混合使用也能解决此问题。下面通过一个实例来分析如何使用自动装配。

首先创建创建一个学生类 Student,定义学号、姓名、性别、年龄等属性,并添加对

应的 set()与 get()方法。程序代码如下。

同样创建一个教师类 Teacher,定义姓名、性别和年龄等属性,并添加对应的 set()与 get()方法。程序代码如下。

在这个配置文件中定义了 Student 类和 Teacher 类,并为姓名、年龄和性别属性赋值。在定义 TeachFile 类时,没有传递任何参数,而是采用了 autowire 属性自动配置 TeachFile类所需要的属性。下面编写一个主类 PrintInfo 类来输出档案信息。程序代码如下。

分别介绍每种装配类型的用法。(1)no:autowire 采用的默认值,采用自动装配。必须使用 ref 直接引用其他 Bean,这样可以增加代码的可读性,并且不易出错。(2)byName:以属性名区分自动装配。在容器中寻找与 JavaBean 的属性名相同的JavaBean,并将其自动装配到 JavaBean 中。如果用上面的实例来解释,TeachFile 类的实例对象 teachFile 包含的两个属性分别是 Teacher 类和 Student 类的实例对象,而配置文件中已经定义了这两个类的实例。在定义 teachFile 实例时指定了自动装配类型为“byName”,容器会自动寻找 teachFile 实例需要的属性(即 teacher 和 student 两个 JavaBean),并注入到 teachFile 实例中。此类自动装配类型存在错误装配 JavaBean 的可能,如果配置文件中定义了与需要自动装配的 JavaBean 属性相同而类型不同的 JavaBean,那么它会错误地注入不同类型的JavaBean。读者可以将上面实例中的配置文件修改一下,将 student 和 teacher 两个JavaBean 的类型保持不变,将名字调换一下,便会出现此问题。这时自动装配无法解决此问题,只能通过混合使用手动装配来指定装配哪个 JavaBean。(3)byType:以属性类型区分自动装配。容器会自动寻找与 JavaBean 的属性类型相同的 JavaBean 的定义,并将其注入到需要自动装配的 JavaBean 中。如果将上面配置JavaBean 自动装配的类型修改为 byType,也可以实现相同的结果。这种自动装配类型也会出现无法自动装配的情况。例如在配置文件中再次添加一个Student 类或 Teacher 类的实现对象,byType 自动装配类型会因为无法自动识别装配哪一个 JavaBean JavaBean。(4)constructor:通过构造方法的参数类型自动装配。此类型会使容器自动寻找与JavaBean 的构造方法的参数类型相同的 Bean,并注入到需要自动装配的 JavaBean 中。它与 byType 类型存在相同的无法识别自动装配的情况。(5)autudetect:这是最后一个自动装配类型,它首先使用 constructor 方式自动装配,然后使用 byType 方式。当然它也存在与 byType 和 constructor 相同的异常情况。建议在使用自动装配时,把容易出现问题的

我要回帖

更多关于 spring配置好麻烦 的文章

 

随机推荐