Spring框架中的容器以及两大特性

Spring框架中的容器以及两大特性,第1张

  Spring容器提供了一种管理方法,致力于解决我们各个层级之间的对象的调用关系。

  我们通常调用各层级对象的时候,需要不断创建对象,一次访问就需要创建两个对象;如果我们使用Spring容器,将不同层级的对象放入容器中,每次使用的时候调用容器中的对象,就不用创建那么多对象,达到节约内存空间的目的。简单来讲,Spring容器就是存储JavaBean对象的容器。

  BeanFactory是一个接口,需要创建继承的子类对象。下图是其继承结构图:

方式二:使用ClassPathApplicationContext获取容器类

  这个方法替代了方式一,是我们创建容器类对象主要使用的方法。

方式三:使用FileSystemXmlApplicationContext来获取容器对象

  这种方式在创建对象的时候需要传入配置文件的绝对路径,这个方法可以使用项目外部的配置文件

  IOC(inversion of controller)指的是控制反转,简单来书,就是讲创建对象的过程或者创建对象的权限交给了spring框架来帮我们处理,我们不用再通过new的方式来创建JavaBean对象,这个过程就叫做IOC。

首先在applicationContext中配置我们的对象

然后从容器中获取我们的JavaBean对象

创建bean的工厂类

在配置文件中进行配置

获取JavaBean对象

创建工厂类的方式与上面相同

在配置文件中进行配置

获取JavaBean对象

Bean属性scope可以声明bean的作用域范围,Bean的作用域范围有四种:

我们可以在JavaBean类中添加init-method与destroy-method两个方法,实现bean在初始化和关闭的时候调用的方法,然后在配置文件中进行配置。

JavaBean类

配置文件

  DI(dependency injection)指的是依赖注入,简单来说就是使用spring框架对我们的JavaBean对象赋值的过程。

使用上文中创建的JavaBean类

注意:一定要给属性生成对应的setter方法

配置JavaBean类的属性

从容器中获取我们的JavaBean对象

在JavaBean中生成带所有属性的构造方法

在配置文件中申明JavaBean对象

申明的另一种方法:

调用JavaBean的属性

  P名称空间与C名称空间其实都是不存在的虚拟空间,主要是用于简化我们的spring为JavaBean属性赋值时的配置。

添加P名称空间与C名称空间到schema

通过setter方法进行赋值:

等价于:

通过构造方法进行赋值

等价于:

  Spel表达式,类似于jstl与el表达式的语言,spring可以支持我们在为属性赋值的时候,通过spel表达式来进行更改我们的属性值。

创建一个含有集合属性的JavaBean类

为集合属性注入值

不知道我对你的题目的理解对不对:有个方法返回一个 泛型 ,你想去这个 泛型 的类型是不是?

package test;

import javautilArrayList;

import javautilList;

public class Test01 {

public static void main(String[] args) {

List<String> strings = new ArrayList<String>();

stringsadd("123");//模拟返回一个泛型

Systemoutprintln(stringsgetClass());//第一次取类型

Systemoutprintln(stringsget(0)getClass());//假如通过第一步知道是ArrayList类型,则再取类型

}

}

输出结果:

class javautilArrayList

class javalangString

这里只举例讲一下方法,不知道是不是你想要的,

List<Object> list = new ArrayList<Object>();

listadd(new String("aaa"));

Systemoutprintln(listget(0)getClass()getName());

输出的值是javalangString,这样就能取得泛型的具体类型,不知道你是不是要这个意思

这种问题我太熟了,有x种解决方法介绍给你们。

1、定义JavaBean类

定义一个与表相对应的JavaBean类,该类中需要包含对应表的字段,并使用getters和setters方法来访问这些字段。例如:

public class User {

private int id;

private String name;

private String email;

// Getters and setters for the fields

public int getId() {

return id;

}

public void setId(int id) {

thisid = id;

}

public String getName() {

return name;

}

public void setName(String name) {

thisname = name;

}

public String getEmail() {

return email;

}

public void setEmail(String email) {

thisemail = email;

}

}

2、使用useBean指令

使用useBean指令在JSP页面中引用JavaBean类,并创建JavaBean对象。例如:

<jsp:useBean id="user" class="comexampleUser" scope="session" />

3、改写insert方法

在提交表单数据时,将数据封装到JavaBean对象中,并通过DAO层将JavaBean插入到数据库中。例如:

String name = requestgetParameter("name");

String email = requestgetParameter("email");

// Create a new user object and set its properties

User user = new User();

usersetName(name);

usersetEmail(email);

// Insert the new user into the database using DAO layer

UserDAO userDAO = new UserDAO();

userDAOinsert(user);

4、改写queryByld方法

在查询数据时,通过DAO层获取JavaBean对象,并将其存储到request作用域中,以便在另一个页面中访问。例如:

int id = IntegerparseInt(requestgetParameter("id"));

UserDAO userDAO = new UserDAO();

// Get the user object by id using DAO layer

User user = userDAOqueryById(id);

// Store the user object in request attribute

requestsetAttribute("user", user);

// Forward to a JSP page to display the user information

RequestDispatcher dispatcher = requestgetRequestDispatcher("/userjsp");

dispatcherforward(request, response);

5、创建用户信息展示页面

创建一个JSP页面(例如userjsp),用于展示从数据库中查询出来的用户信息。在页面中使用EL表达式和JavaBean对象的属性来显示用户信息。例如:

<%@ page language="java" contentType="text/html; charset=UTF-8"

pageEncoding="UTF-8"%>

<%@ taglib prefix="c" uri=">

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>User Information</title>

</head>

<body>

<h1>User Information</h1>

<c:if test="${not empty user}">

<p>Name: ${username}</p>

<p>Email: ${useremail}</p>

</c:if>

</body>

</html>

以上就是如何使用JavaBean和useBean来改写insert和queryByld方法,并将结果跳转到另一个页面显示的步骤

就是这些啦,整理不易,看完记得点个赞再走呀~

aaget( 你的索引 )getClass() 实际上,这个就相当于MainFormListclass

这样就获取到了你所get出来的元素的 泛型类型 了,

大多是反射的时候在需要获取。。。

希望可以帮助到你

以上就是关于Spring框架中的容器以及两大特性全部的内容,包括:Spring框架中的容器以及两大特性、java怎么获取一个泛型方法的真实泛型类型、如何获得java 泛型类中t的实例等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/10127715.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存