JavaEE--Spring_IOC02

一、Bean实例化的三种方式

  1、使用类的无参构造创建(重点)

      <bean id="user" class="类的全路径"></bean>

      如果类没有无参构造则报异常

    2、使用静态工厂创建

      (1)在工厂类中创建静态方法返回类对象

          public class UserFactory{

            public static User getUser(){

              return new User();

            }

          }

      (2)在Spring配置文件中创建对象

          <bean id="user" class="工厂类的全路径" factory-method="getUser"></bean>

    3、使用实例工厂创建

      (1)创建不是静态的方法返回类对象

          public class UserFactory{

            public  User getUser(){

              return new User();

            }

          }

      (2)

          <bean id="userFactory" class="工厂类的全路径"></bean>

          <bean id="user" factory-bean="userFactory" factory-method="getUser"></bean>

二、bean标签常用的属性

    id属性:起名称,可以任意命名,不能用特殊符号,根据id值可以得到配置对象

     class属性:创建对象所在类的全路径

        name属性:功能和id属性一样,可以使用特殊符号

     scope属性:

        值:singleton:单例的(默认值)

          prototype:多例的

          request:Spring创建一个对象把它放在request域中

          session:Spring创建一个对象把它放在session域中

          globalSession:应用在porlet环境中,如果没有porlet环境,那么相当于session

三、属性注入

    第一种:使用set方法注入

        public class User{

          private String name;

          public void setName(String name){

            this.name=name;

          }

        }

     第二种:使用有参构造注入

        public class User{

          private String name;

          User(String name){

            this.name=name;

          }

        }

     第三种:接口注入

        public interface UserDao{

          public void deleteUser();

        }

          public UserDaoImp implements UserDao{

          private String name;

          public void deleteUser(String name){

            this.name=name;

             ...

          }

        }

        在Spring中只支持前两种注入方式

    1、set方法注入配置(重点)

        <bean id="user" class="类的全路径">

          <property name="属性名" value="属性值"></property>

        </bean>

    2、使用有参构造注入

        <bean id="user" class="类的全路径">

          <constructor-arg name="属性名" value="属性值"></constructor-arg>

        </bean>

    3、注入对象类型的属性(以在service中注入dao为例)

        (1)在service中把dao作为属性

        (2)生成dao类型属性的set方法

        (3)<.bean id="userDao" class="dao的全路径"></bean>

           <bean id="userService" class="service的全路径">

              <property name="属性名" ref="userDao"></property>

           </bean>

    4、p名称空间注入

        在约束上加入:<bean

                 xmlns:p="http://www.springframework.org/schema/p"     

                 >

           <bean id="user" class="类的全路径" p:属性名="属性值"></bean>

    5、复杂属性注入

        注入数组类型:

        <bean id="user" class="类的全路径">

          <property name="属性名" >

            <list>

              <value>属性值</value>

              <value>属性值</value>

            </list>

          </property>

        </bean>

         注入list类型

         <bean id="user" class="类的全路径">

          <property name="属性名" >

            <list>

              <value>属性值</value>

              <value>属性值</value>

            </list>

          </property>

          </bean>

         注入map类型

         <bean id="user" class="类的全路径">

          <property name="属性名" >

            <map>

              <entry key="键" value="值"></entry>

              <entry key="键" value="值"></entry>

            </map>

          </property>

          </bean>

         注入properties类型

         <bean id="user" class="类的全路径">

          <property name="属性名" >

            <props>

              <prop key="键">值</prop>

              <prop key="键">值</prop>

            </props>

          </property>

          </bean>

四、IOC和DI的区别

      (1)ioc:控制反转,把对象交给spring配置

          (2)di:依赖注入:向类里面的属性设置值

        (3)关系:依赖注入不能单独存在,需要在ioc的基础上完成操作

时间: 2024-10-22 09:27:33

JavaEE--Spring_IOC02的相关文章

AOS V0.4 发布,JavaEE 应用基础平台

写在最前面 经过一段时间的强撸,我们觉得是时候发布AOS V0.4版本了.这个版本共有22个新增/缺陷/问题的变更. AOS平台简介 AOS应用基础平台基于JavaEE技术体系,以"标准功能可复用.通用模块可配置.行业需求快速开发.异构系统无缝集成"为目标,为软件开发团队提供高效可控.随需应变.快速实现业务需求的全栈式技术解决方案.帮助企业落实IT策略.屏蔽技术壁垒,快速实现业务愿景.使其获得更低成本.更高质量.更快交付业务和运维支持的核心技术竞争力. 据说这货尤其适合构建和开发中大型

关于JavaEE项目连接数据库提示 Access denied for user &#39;root&#39;@&#39;localhost&#39; (using password: YES)的解决方案

最近这三天,都在解决如下的问题:我MyEclipse中的JavaEE工程,运行之后就提示Access denied for user 'root'@'localhost' (using password: YES),当我用一个Java文件连接MySQL数据库时,没有任何问题.于是我在网上找了一些解决方案: (1)让root给当前用户授予增删改查的权限:grant select,insert,update,delete on *.* to 用户名@"%" Identified by &q

JavaEE应用基础平台 AOS-V0.1 RELEASED

写在最前面 AOS是一个有着悠久历史传承和发扬的平台,她的前世G4Studio自2010年发布V1.0版本以来,先后经过多次版本更新,并得到了一些小伙伴的认可和使用.但我们希望做得更好,走得更远.于是,2013年发布了V5.2 EOL版本,结束了G4Studio的版本周期.关于G4Studio的更多信息,可以访问如下项目主页.https://github.com/xiongchun/g4studio 2年后,我们涅槃重生.带着更好,更强的AOS来了-- AOS平台简介 AOS应用基础平台基于Ja

轻量级javaEE SSH 01: 概述 环境与工具篇

. 本系列的相关内容, 是这两年积累下来的, 本次整理成网页版本, 一方面共享给大家, 另一方面也方便自己查阅. 本文以图形方式展示轻量级SSH框架下的javaEE 需要使用环境与工具: 此处介绍轻量级JavaEE 以及tomcat, MySql, ant 此处介绍Maven, Apache, SVN部分: 本系列的相关内容, 是这两年积累下来的, 本次整理成网页版本, 一方面共享给大家, 另一方面也方便自己查阅.

JavaEE学习之Spring aop

一.基本概念 AOP——Aspect-Oriented Programming,面向切面编程,它是spring框架的一个重要组成部分.一般的业务逻辑都有先后关系,我们可以理解为纵向关系,而AOP关注的是横向关系,每一个关注点可以理解为一个横切面.例如我们的大部分代码都会涉及到日志记录,很多的数据库操作都会涉及到事务的创建和提交.那么从横向关注这些逻辑,他们都一个个的切面. AOP技术的具体实现,可以通过动态代理技术或者是在程序编译期间进行静态的"织入"方式.AOP经常使用的场景包括:日

JavaEE框架Bootstrap、HTML5、jQuery、SpringMVC、Hibernate mybatis

获取[下载地址]   QQ: 313596790   [免费支持更新] 三大数据库 mysql  oracle  sqlsever   更专业.更强悍.适合不同用户群体 [新录针对本系统的视频教程,手把手教开发一个模块,快速掌握本系统] A 集成代码生成器(开发利器);                                         技术:313596790    增删改查的处理类,service层,mybatis的xml,SQL( mysql   和oracle)脚本,   j

intellij idea 为JavaEE项目建立Servlet

建立Servlet的方法 顶部菜单栏 View > Tool Windows > Web. 然后互相web窗口 右键Web>new>Servlet 弹出窗口 intellij idea 为JavaEE项目建立Servlet,布布扣,bubuko.com

一句话讲清楚什么是JavaEE

Java技术不仅是一门编程语言而且是一个平台.同时Java语言是一门有着特定语法和风格的高级的面向对象的语言,Java平台是Java语言编写的特定应用程序运行的环境.Java平台有很多种,很多的Java工程师,即使是干了很长时间的工程师也不是很理解不同平台之间的区别和关联是什么.Java编程语言一共有四个官方的平台: ■ JavaPlatform, Standard Edition (Java SE) ■ Java Platform, Enterprise Edition (Java EE) ■

使用JavaEE的ServerAuthModule模块和web.xml进行相应配置,实现对用户的权限控制

ServerAuthModule这里不细说,可以自行百度. 重点在注释: <!-- 给web-app划分角色 --> <security-role> <role-name>spx.main</role-name> </security-role> <security-role> <role-name>spx.user</role-name> </security-role> <!-- 只有配置

JavaEE开发基础

1 JavaEE简介 Java平台有三个版本,分别是JavaSE(Java Platform, Standard Edition),JavaEE(Java Platform, Enterprise Edition)和JavaME(Java Platform, Micro Edititon). JavaSE以前称为J2SE,适用于桌面系统开发,它包含了支持Java Web服务开发的类,并为JavaEE提供基础.JavaEE以前称为J2EE,适用于企业级应用开发,它是在JavaSE的基础上构建的,它