首页 > 其他分享 >spring对象的获取及属性赋值方式

spring对象的获取及属性赋值方式

时间:2023-09-23 11:12:21浏览次数:32  
标签:www http spring springframework context org 赋值 属性

3、spring创建第三方bean对象

在Spring中,很多对象都是单实例的,在日常的开发中,我们经常需要使用某些外部的单实例对象,例如数据库连接池,下面我们来讲解下如何在spring中创建第三方bean实例。

​ 1、导入数据库连接池的pom文件

<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.2.8</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.30</version>
</dependency>
2、编写配置文件
ioc.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
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">

<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
<property name="driverClassName" value="com.mysql.cj.jdbc.Driver"></property>
<property name="url" value="jdbc:mysql://localhost:3306/demo?serverTimezone=UTC"></property>
<property name="username" value="root"></property>
<property name="password" value="root123456"></property>
</bean>
</beans>
SpringDemoTest.java
import com.alibaba.druid.pool.DruidDataSource;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import java.sql.SQLException;

public class SpringDemoTest {
public static void main(String[] args) throws SQLException {
ApplicationContext context=new ClassPathXmlApplicationContext("applicationContext3.xml");
DruidDataSource bean = context.getBean(DruidDataSource.class);
System.out.println(bean);
System.out.println(bean.getConnection());
}
}

4、spring引用外部配置文件

在resource中添加dbconfig.properties

driverClassName=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://localhost:3306/demo?serverTimezone=UTC
userName=root
password=root123456
编写配置文件
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd">
<!--加载外部配置文件
在加载外部依赖文件的时候需要context命名空间
-->
<context:property-placeholder location="classpath:db.properties"></context:property-placeholder>

<bean id="druidDataSource" class="com.alibaba.druid.pool.DruidDataSource">
<property name="driverClassName" value="${driverClassName}"></property>
<property name="url" value="${url}"></property>
<property name="username" value="root"></property>
<property name="password" value="root123456"></property>
</bean>
</beans>

5、spring基于xml文件的自动装配

​ 当一个对象中需要引用另外一个对象的时候,在之前的配置中我们都是通过property标签来进行手动配置的,其实在spring中还提供了一个非常强大的功能就是自动装配,可以按照我们指定的规则进行配置,配置的方式有以下几种:

​ default/no:不自动装配

​ byName:按照名字进行装配,以属性名作为id去容器中查找组件,进行赋值,如果找不到则装配null

​ byType:按照类型进行装配,以属性的类型作为查找依据去容器中找到这个组件,如果有多个类型相同的bean对象,那么会报异常,如果找不到则装配null

​ constructor:按照构造器进行装配,先按照有参构造器参数的类型进行装配,没有就直接装配null;如果按照类型找到了多个,那么就使用参数名作为id继续匹配,找到就装配,找不到就装配null

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
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">
<bean id="address" class="com.mashibing.bean.Address">
<property name="province" value="江西省"></property>
<property name="city" value="抚州市"></property>
<property name="town" value="南城县"></property>
</bean>

<bean id="person" class="com.mashibing.bean.Person" autowire="byName"></bean>
<bean id="person1" class="com.mashibing.bean.Person" autowire="byType"></bean>
<bean id="person2" class="com.mashibing.bean.Person" autowire="constructor"></bean>
</beans>

6、SpEL的使用

​ SpEL:Spring Expression Language,spring的表达式语言,支持运行时查询操作对象

​ 使用#{...}作为语法规则,所有的大括号中的字符都认为是SpEL.

<bean id="person3" class="com.mashibing.bean.Person">
<property name="age" value="#{12*2}"></property>
<property name="name" value="#{address.province}"></property>
<property name="address" value="#{address}"></property>
<property name="hobbies" value="#{T(java.util.UUID).randomUUID().toString().substring(0,4)}"></property>
<property name="gender" value="#{address.getCity()}"></property>
</bean>




标签:www,http,spring,springframework,context,org,赋值,属性
From: https://www.cnblogs.com/shanqiang1/p/17724011.html

相关文章

  • CSS的表格属性
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><title>Document</title>......
  • spring对象的获取及属性赋值方式(二)
    11、bean对象的初始化和销毁方法​在创建对象的时候,我们可以根据需要调用初始化和销毁的方法Address.javapackagecom.mashibing.bean;publicclassAddress{privateStringprovince;privateStringcity;privateStringtown;publicAddress(){Sy......
  • CSS的文本属性
    1.指定元素文件的水平对齐方式:text-align(leftrightcenter)2.text-decoration:文本修饰(underline下划线overline上划线line-through删除线)3.text-transform:控制文本的大小写:(captialize开头大写 uppercase所有字母大写lowercase所有字母小写)4.text-indent:规定文......
  • Spring Security多因素身份验证
    什么是多因素身份验证?多因素身份验证是指使用多个不同的身份验证因素来确认用户的身份。通常情况下,这些因素包括以下几个方面:知道的因素:例如密码、PIN码等拥有的因素:例如手机、U盾等生物特征因素:例如指纹、面部识别等多因素身份验证可以提高系统的安全性,因为攻-击者需......
  • 深入探讨Spring WebFlux的函数式端点
    介绍SpringWebFlux是SpringFramework5中的新功能,它提供了一种基于反应式编程的Web框架。在WebFlux中,我们可以使用函数式端点来处理HTTP请求。这篇博客将深入探讨SpringWebFlux的函数式端点。函数式端点函数式端点是一种处理HTTP请求的方式,它使用函数来处理请求。在WebFlux中......
  • Spring Boot生产环境部署
    前言SpringBoot是一款非常流行的Java开发框架,它提供了快速开发、简化配置等优点,因此在开发中被广泛使用。但是,在将应用程序部署到生产环境时,我们需要考虑很多问题,如性能、安全、可靠性等。本文将深入探讨SpringBoot的生产环境部署。部署方式SpringBoot应用程序可以以多种方式......
  • 深入探讨Spring Batch的批处理原理
    1.什么是SpringBatch?SpringBatch是一个轻量级的、全面的批处理框架,它可以处理大量的数据,支持事务管理、并发处理、错误处理、跟踪和监控等功能。SpringBatch可以帮助我们实现复杂的批处理任务,如数据清洗、数据转换、数据导入、数据导出等。2.SpringBatch的核心概念2.1Job......
  • Spring Boot中的消息队列集成
    介绍在现代应用程序中,消息队列已经成为了一种非常流行的解决方案,它可以帮助我们实现异步通信、解耦和扩展性。SpringBoot提供了对多种消息队列的集成支持,包括RabbitMQ、Kafka、ActiveMQ等。在本文中,我们将深入探讨SpringBoot中的消息队列集成。RabbitMQ集成RabbitMQ是一个流行......
  • 干货,某大厂小姐姐深夜让我说出了秘密-springboot发邮件
    后端依赖<!--引入mail依赖--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-mail</artifactId></dependency><!--使用thymeleaf构建邮件模板--><depen......
  • SpringMVC如何在web.xml中配置DispatcherServlet
    SpringMVC如何在web.xml中配置DispatcherServlet配置WEB-INF/web.xml===>配置前端控制器/中央控制器/分发控制器,用户所有的请求都会经过它的处理<?xmlversion="1.0"encoding="UTF-8"?><web-appxmlns="http://xmlns.jcp.org/xml/ns/javaee"xmlns:xsi......