精华内容
下载资源
问答
  • Bean Java配置

    2021-02-28 06:07:35
    Spring 系列教程前面介绍了Bean的XML配置方法,从Spring 3.0开始,可以使用java代码配置Bean,替代XML配置。...Java配置也会用到一些注解,主要有:@Configuration、@ComponentScan@Bean。1. 通过@Configura...

    Spring 系列教程

    前面介绍了Bean的XML配置方法,从Spring 3.0开始,可以使用java代码配置Bean,替代XML配置。

    Java配置与注解配置不同,Java配置是把Java代码文件当作配置文件,注解配置是在实际Java类中使用注解设置依赖关系。

    Java配置也会用到一些注解,主要有:@Configuration、@ComponentScan和@Bean。

    1. 通过@Configuration注解创建Java配置类

    @Configuration注解标注的类是配置类,用于配置Bean之间依赖关系。

    @Import注解允许从另一个配置Java/XML文件加载bean定义。

    示例:SpringConfig.java

    package com.qikegu.demo.config;

    import org.springframework.context.annotation.Configuration;

    import org.springframework.context.annotation.ComponentScan;

    @Configuration // 表明这是个Bean的Java配置类

    public class SpringConfig {

    }

    2. 通过@Bean注解定义Bean

    要定义一个Bean,可以通过:

    给一个方法加@Bean注解

    方法返回Bean实例

    Spring容器会注册这个Bean,并将方法名作为Bean ID。

    示例:SpringConfig.java

    package com.qikegu.demo.config;

    import org.springframework.context.annotation.Bean;

    import org.springframework.context.annotation.Configuration;

    @Configuration

    public class SpringConfig {

    // 定义 App Bean

    @Bean(initMethod = "init", destroyMethod = "close" ) // 指定初始化回调,销毁回调

    @Scope("prototype") // 设置Bean作用域

    public App app() { // Bean ID = app

    return new App(); // 返回App Bean

    }

    }

    3. 注入Bean依赖关系

    可以通过让一个Bean方法调用另一个Bean方法注入依赖项。

    示例:SpringConfig.java

    package com.qikegu.demo.config;

    import org.springframework.context.annotation.Bean;

    import org.springframework.context.annotation.Configuration;

    @Configuration

    public class SpringConfig {

    // 定义 App Bean

    @Bean

    public App app() {

    return new App(logger()); // 调用Bean方法logger()注入Logger Bean实例

    }

    /* @Bean

    public App app() {

    App app = new App();

    Service[] services = {database(), logger(), mail()};

    app.setServices(services);

    app.setMainService(services[1]);

    app.setId(1234);

    return app;

    } */

    // 定义 Database Bean

    @Bean

    public Database database() {

    return new Database();

    }

    // 定义 Logger Bean

    @Bean

    public Logger logger() {

    return new Logger();

    }

    // 定义 Mail Bean

    @Bean

    public Mail mail() {

    return new Mail();

    }

    }

    4. 读取配置类

    可以使用AnnotationConfigApplicationContext读取配置类。

    示例:Test.java

    package com.qikegu.demo.config;

    import org.springframework.context.ApplicationContext;

    import org.springframework.context.annotation.AnnotationConfigApplicationContext;

    public class Test {

    public static void main(String[] args) {

    // 使用`AnnotationConfigApplicationContext`读取配置类

    ApplicationContext context = new AnnotationConfigApplicationContext(SpringConfig.class);

    }

    }

    5. 通过Spring容器获取bean

    示例:

    App app = context.getBean("app", App.class);

    展开全文
  • File file = new File("D:\\softTemp\\student.out"); ObjectOutputStream objectOutputStream = new ObjectOutputStream(new FileOutputStream(file)); Student student = new Student("老吴",18);...
    File file = new File("D:\\softTemp\\student.out");
    ObjectOutputStream objectOutputStream = new ObjectOutputStream(new FileOutputStream(file));
    Student student = new Student("老吴",18);
    objectOutputStream.writeObject(student);
    objectOutputStream.close();
    
    ObjectInputStream objectInputStream = new ObjectInputStream(new FileInputStream(file));
    student = (Student) objectInputStream.readObject();
    objectInputStream.close();
    System.out.println(student.toString());
    展开全文
  • Spring 框架中有三种配置Bean 的方式,这里以XML配置文件为例说明Bean的依赖注入。一、依赖注入(Dependency Injection)说明Java对象Bean 创建时,如果其属性信息依赖其他对象;则将依赖的其他对象注入到要创建的Bean...

    Spring 框架中有三种配置Bean 的方式,这里以XML配置文件为例说明Bean的依赖注入。

    一、依赖注入(Dependency Injection)说明

    Java对象Bean 创建时,如果其属性信息依赖其他对象;则将依赖的其他对象注入到要创建的Bean对象中,就是依赖注入。

    1、由Spring 来维护对象间的依赖关系;如果当前类需要依赖其他的类对象,由Spring 对我们提供这个对象。我们只需要在配置文件中说明即可。

    2、依赖关系的维护:就称之为依赖注入。

    3、依赖注入时,其注入的对象也分为三类

    基本类型和String

    其他bean类型(在配置文件中或者注解配置过的bean)

    复杂类型/集合类型

    依赖注入的方法:使用构造方法提供注入、使用setter方法提供注入。

    二、使用构造函数方法做依赖注入

    创建一个Customer 顾客对象;这个对象创建过程会依赖到姓名,年龄,生日这些对象信息。使用构造函数的方法,演示依赖对象注入到顾客对象的。

    代码信息:

    public class CustomerServiceImpl implements CustomerService {

    //如果是经常变化的数据,并不适用于注入的方式

    private String name;

    private Integer age;

    private Date birthday;

    public CustomerServiceImpl(String name,Integer age,Date birthday){

    this.name = name;

    this.age = age;

    this.birthday = birthday;

    }

    public void saveCustomer(){

    System.out.println("service中的saveCustomer方法执行了。。。"+name+","+age+","+birthday);

    }

    }

    配置项信息:

    配置项说明

    使用的标签: constructor-arg

    标签出现的位置: bean标签的内部

    标签中的属性:

    type : 用于指定要注入的数据的数据类型, 该数据类型也是构造函数中某个或某些参数的类型

    index: 用于指定要注入的数据给构造函数中指定索引位置的参数赋值, 索引的位置从0开始

    name: 用于指定给构造函数中指定名称的参数赋值

    value : 用于提供基本类型和String类型的数据

    ref : 用于指定其他的bean类型数据,它指的就是在spring的Ioc核心容器中出现过的bean对象

    上面三个用于指定给构造函数中哪个参数赋值,下面两个参数指定参数的字面量

    优势:

    在获取bean对象时, 注入数据是必须的操作, 否则对象无法创建成功

    弊端:

    改变了bean对象的实例化方式, 使我们在创建对象时, 如果用不到这些数据, 也必须提供

    三、使用SET方法做依赖注入 更常用

    代码信息

    public class CustomerServiceImpl implements CustomerService {

    //如果是经常变化的数据,并不适用于注入的方式

    private String name;

    private Integer age;

    private Date birthday;

    public void setName(String name) {

    this.name = name;

    }

    public void setAge(Integer age) {

    this.age = age;

    }

    public void setBirthday(Date birthday) {

    this.birthday = birthday;

    }

    public void saveCustomer(){

    System.out.println("service中的saveCustomer方法执行了。。。"+name+","+age+","+birthday);

    }

    }

    配置项信息

    配置项说明

    涉及的标签:property

    出现的位置:bean标签的内部

    标签的属性name:用于指定注入时所调用的set方法名称。

    value:用于提供基本类型和String类型的数据

    ref;用于指定其他的bean类型数据。它指的就是在spring的Ioc核心容器出现过的bean对象

    优势:创建对象时没有明确的限制,可以直接使用默认的构造函数

    弊端:如果有某个成员必须有值,则set方法无法保证一定注入

    展开全文
  • Spring 框架中有三种配置Bean 的方式,这里以XML配置文件为例说明Bean的创建。Spring 的配置文件是基于XML格式的,Spring1.0的配置文件采用DTD格式,Spring2.0以后使用Schema的格式,后者让不同类型的配置拥有了自己...

    Spring 框架中有三种配置Bean 的方式,这里以XML配置文件为例说明Bean的创建。

    Spring 的配置文件是基于XML格式的,Spring1.0的配置文件采用DTD格式,Spring2.0以后使用Schema的格式,后者让不同类型的配置拥有了自己的命名空间,使配置文件更具有扩展性。

    一、以XML文件配置Spring

    1.1、XML 文件配置Bean

    一个项目中可能存在多个配置文件,那么Spring项目加载多个配置文件的方法:

    1、在配置文件中使用import来导入所需的配置文件。

    2、将多个配置文件构造为一个数组,然后传递给ApplicationContext实现加载多个配置文件。

    这两种方式都是通过调用BeanDefinitionReader来读取定义文件的,在内部实现上没有任何的区别。

    1.2、XML 文件配置示例

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

    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

    xmlns:aop="http://wwww.springframework.org/schema/aop"

    xsi:schemaLocation="http://www.springframework.org/schema/beans

    http://www.springframework.org/schema/beans/spring-beans.xsd

    http://www.springframework.org/schema/context

    http://www.springframework.org/schema/aop

    http://www.springframework.org/schema/context/spring-context.xsd">

    在上面的代码中定义了三个命名空间

    1、首先定义了一个默认命名空间,他没有空间名,用于Spring Bean的定义。

    2、接下来命名了一个xsi命名空间,这个命名空间用于为每个文档中命名空间指定相对应的schema的样式文件。是标准组织定义的标准命名空间。

    3、第三个命名了一个aop的命名空间,这个命名空间是Spring配置aop的命名空间,是用户自定义的命名空间。

    1.3、命名空间的定义分为了两个步骤

    1、指定命名空间的名称,需要指定命名空间的缩类名和全名。

    2、指定命名空间的schema文档样式文件的位置,用空格或回车行来进行分割。

    指定命名空间schema地址有两个用途:

    1、xml解析器可以获取schema文件,并对文档进行格式合法性验证。

    2、在开发环境下IDE可以用schema文件来对文档编辑器进行诱导功能。

    Spring3.0 的配置Schema文件分布在各模块类包中,如果模块拥有对应的Schema文件,则可以在模块类包中找到一个config目录,Schema文件就位于该目录中。

    1.4、Schema 说明

    示例说明:Spring-beans-3.0.xsd

    命名空间:http://www.springframework.org/schema/beans

    Schema 文件:http://www.springframework.org/schema/beans/spring-beans-3.0.xsd

    可以看出在Spring3.0当中,所有的Schema文件的命名空间以及对应的位置都和Beans这个Schema文件是类似的。

    1.5、Spring中其他Schema文件的用途

    spring-beans-3.0.xsd:Spring3.0最主要的配置文件,主要是用于配置

    Beanspring-aop-3.0.xsd:aop配置定义的schema

    spring-tx-3.0.xsd:声明式事物配置定义的Schema

    spring-mvc-3.0.xsd:Spring3.0当中新增的

    spring-util-3.0.xsd:是为简化某些复杂的标准配置而提供的Schema

    spring-jee-3.0.xsd:是为简化J2EE中EJB等功能的配置而提供的Schema

    spring-jdbc-3.0.xsd:为Spring内接数据库而提供的Schema,3.0新增

    spring-jms-3.0.xsd:jms配置的Schema

    spring-lang-3.0.xsd:增加了对动态语言的支持,为集成动态语言而定义

    spring-oxm-3.0.xsd:配置对象xml映射到schema,3.0新增

    spring-task-3.0.xsd:任务调度的Schema

    spring-tool-3.0.xsd:为集成Schema一些有用工具而提供的Schema

    二、Bean的三种创建方式

    方式一、调用默认无参构造函数创建 ( 此种方式用的最多)

    默认情况下,如果类中没有默认无参构造函数,则创建失败,会报异常

    car.java 代码文件

    public class Car {

    private String brand;

    private double price;

    public Car(){

    System.out.println("Car对象创建了 ");

    }

    public String getBrand() {

    return brand;

    }

    public void setBrand(String brand) {

    System.out.println("set brand: " + brand);

    this.brand = brand;

    }

    @Override

    public String toString() {

    System.out.println("get the car string type");

    return "Car{" +

    "brand=" + brand'}';

    }

    }

    applicationContext.xml 配置文件

    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

    xsi:schemaLocation="http://www.springframework.org/schema/beans

    http://www.springframework.org/schema/beans/spring-beans.xsd

    http://www.springframework.org/schema/context

    http://www.springframework.org/schema/context/spring-context.xsd">

    index.java 代码文件

    public class Index {

    public static void main(String args[]) throws SQLException {

    ApplicationContext act = new ClassPathXmlApplicationContext("applicationContext.xml");

    Car car = (Car) act.getBean("car");

    System.out.println(car);

    }

    }

    方式二、使用静态工厂中的方法创建对象

    需要使用bean标签的factory-method 属性,指定静态工厂中创建对象的方法

    添加静态工程文件 StaticFactory.java

    public class StaticFactory {

    public static Car getCar(){

    return new Car();

    }

    }

    applicationContext.xml 配置文件修改一行

    方式三、使用实例工厂中的方法创建

    需要使用bean标签中的factory-bean=”instanceFactory” factory-method=“实例工程方法”。

    创建InstanceFactory 文件

    public class InstanceFactory {

    public Car getCar(){

    return new Car();

    }

    }

    applicationContext.xml 配置文件修改

    factory-bean="instanceFactory" factory-method="getCar"/>

    展开全文
  • 按照目的、功能去拆分配置文件,可以提高配置文件的可读性与维护性,如将配置事务管理、数据源等少改动的配置与配置bean单独分开。Spring读取配置文件的几种方式:1、使用Spring自身提供的ApplicationContext方式...
  • packageorg.nhooo.example.bean;importjava.io.Serializable;importjava.io.IOException;importjava.beans.Beans;publicclassTheBeanimplementsSerializable{privateLongid;privateStringname;publicT...
  • 动态创建修改Spring的bean配置文件2014/8/6 21:48:46 tomhat 程序员俱乐部 我要评论(0)摘要:1、如果只是创建一个XML文件,那么只需要导入dom4j-1.6.1.jar就可以了,路径如下:spring-framework-2.5.6\lib\dom4j\...
  • JAVA BEAN和CLASS的区别?

    2021-03-15 13:32:13
    LEATHJavaBeanclass的区别:JavaBean只是比class多一些限制条件,其他无区别。JavaBean实质也是一个类,这个类遵循...实现java.io.Serializable接口(这个目前是默认实现的,不需要特殊申明)。例如以下为一个简单的J...
  • 您有几个选项:进口包含在ApplicationContext构造中将这两个文件作为您的ApplicationContext的一部分,当您创建它=>那么不需要导入。例如,如果您在测试期间需要它:@RunWith(SpringJUnit4ClassRunner.class)@...
  • Java Bean 生成器

    2021-03-22 10:44:16
    这是一个java bean生成器,利用一个文本文件(不妨称为bean定义文件)生成java bean。开发过程中我们可能会用到很多数据对象(值对象),大都被封装成一个bean。虽然各大IDE都提供了方便生成这种数据bean的工具,但都是...
  • } } 第二步 使用JAXBContext进行转换 import java.io.IOException; import javax.xml.bind.*; import javax.xml.transform.Result; import javax.xml.transform.stream.StreamResult; public class ...
  • java相关:Spring如何在xml文件中配置Bean发布于 2021-1-17|复制链接摘记: Spring容器是一个大工厂,负责创建、管理所有的Bean。Spring容器支持2种格式的配置文件:xml文件、properties文件,最常用的是xml文件。...
  • javabean是什么意思?

    千次阅读 2021-02-12 11:07:56
    Bean的中文含义是“豆子”,顾名思义JavaBean是一段Java小程序。JavaBean实际上是指一种特殊的Java类,它通常... Java Bean技术概述Java Bean是基于Java的组件模型,由属性、方法事件3部分组成。在该模型中,JavaB...
  • 譬如说我程序中有一个Spring bean如下,它会被一个自定义的Util普通类(里面都是静态方法)所用,@Componentpublic class SpringContextUtil implements ApplicationContextAware {private static ApplicationContext ...
  • 这篇文章主要介绍了spring基于xml文件配置Bean过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下通过全类名来配置:class:bean的全类名,通过反射的方式...
  • 对于Tomcat,/test.jsp将/org/apache/jsp/test_jsp.java在Tomcat的/work文件夹中生成一个文件。以下几行(我所做的唯一更改是添加了一个程序包;无程序包类是Bad™)生成为com.example.Dog dog = null;synchronized ...
  • wsdl文件生成java代码

    2021-02-28 11:37:13
    通过 axis 代码工具包拿到的接口的 WSDL 文件,生成 java 的 webservice 客户端代 码 新建 ......wsdl ③根据 WSDL 文档生成的 java 客户端程序如图 13: 图 13 客户端 java 代码 ④编写代码测试本服务的所有计算...
  • Bean标签属性及子标签的配置说明 bean标签的属性: id:给对象在容器中提供一个唯一标识。用于获取对象。 class:指定类的全限定类名。用于反射创建对象。默认情况下调用无参构造函数。 scope:指定对象的作用范围。...
  • Spring配置文件Bean

    2021-03-02 11:11:40
    Spring配置文件Bean) 一.Bean的作用 用于配置对象交由Spring来创建。 默认情况下它调用的是类中的无参构造函数,如果没有无参构造函数则不能创建成功。 二.基本属性 id;Bean实例 class:Bean的全限定名称 三....
  • Bean的中文含义是“豆子”,顾名思义JavaBean是一段Java小程序。JavaBean实际上是指一种特殊的Java类,它通常... Java Bean技术概述Java Bean是基于Java的组件模型,由属性、方法事件3部分组成。在该模型中,JavaB...
  • } } java配置是spring4.X所推荐的配置方式 像上面两个Bean 就是用JavaConfig用作配置文件来加载 加载方法: //这是扫描配置文件方法 ApplicationContext application = new ClassPathXmlApplicationContext(...
  • Java文件上传实例并解决跨域问题

    千次阅读 多人点赞 2021-09-03 20:06:44
    本文内容为Java文件上传实例并解决跨域问题,其中重点讲解了文件上传,MultipartFile接口的使用,配置nginx,以及解决文件上传跨域的问题
  • 九、使用注解开发配置文件:xmlns:xsi=...
  • 点击图示加号,选取图示文件夹 加入到文件中重新build即可
  • [Java教程]Spring中Bean的配置0 2016-09-10 16:00:15原创作品,可以转载,但是请标注出处地址http://www.cnblogs.com/V1haoge/p/5859556.html1、Bean的配置一般都在文件中进行配置2、Bean相关包为:org.spring...
  • java SpringUtil获取bean

    2021-03-05 22:00:01
    package ...import java.io.PrintStream;import org.springframework.beans.BeansException;import org.springframework.context.ApplicationContext;import org.springframework.co...
  • 如果我有一个使用@Controller@RequestMapping注释的控制器,并且我想通过依赖注入来设置一个属性,那我该怎么做呢?控制器类不必出现在Spring配置文件中,因为它被@Controller注释自动拾取。示例Controller类:...
  • 注意事项:1、怎么把我们的.xml文件注入到Spring容器中?千万注意要在web.xml文件中,的标签中配置我们自定义的.xml文件,通过这个标签把我们配置的文件注入到Spring容器中;2、怎么把我们的自己写的类注入到Spring...
  • 封装DB类 封装DB类 一般一个类单独书写在一个Php文件中,为了见名知意,会对文件名有一个规范:类名.class.php 第1步: 创建DB类 第2 步: 属性设计 第3步: 初 ... HDU 1712 ACboy needs your help 典型的分组背包 题目...
  • 文章目录Java Bean Spring BeanJava BeanSpring BeanXML创建bean@Bean创建Bean@CompantScan创建Bean编程式BeanDefinition Java Bean Spring Bean Bean 就是对象。 不管是 Java Bean 还是 Spring Bean,都是...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 500,260
精华内容 200,104
关键字:

java文件和bean文件

java 订阅