Spring -bean的 配置

容器的定义,

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

    

<bean id="helloworld" class="a.b.c.Hellowoed">
		<property name="name" value="Spring"></property>
		<property name="age" value="17"></property>
		<property name="sex" value="woman"></property>
	</bean>
    <bean id="Car" class="a.b.c.Car">
	<constructor-arg value="baoma" index="0"></constructor-arg>
	<constructor-arg value="aijuntao" type="java.lang.String" index="1"></constructor-arg>
	<constructor-arg value="188888" type="int"></constructor-arg>
	</bean>
	<bean id="p1" class="a.b.c.Person" p:name="xxx" p:age="1111" p:car-ref="Car">
	</bean>
	<bean id="p2" class="a.b.c.Person">
			<property name="name" value="lll"></property>
			<property name="age" value="44"></property>
			<property name ="car">
				<bean id="car_" class="a.b.c.Car">
				 <property name="band" value="baoma"></property>
				  <property name="user" value="lll"></property>
				  <property name="price" value="14000000"></property>
				</bean>
			</property>
			<property name="cars">
			<list>
			<ref bean="Car"/>
			<bean id="car_" class="a.b.c.Car">
				 <property name="band" value="baoma"></property>
				  <property name="user" value="lll"></property>
				  <property name="price" value="14000000"></property>
				</bean>
			</list>
			</property>
	</bean>

读取属性文件进行配置:

<context:property-placeholder location="classpath:conn.properties"/>	
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="user" value="${user}"></property>
<property name="password" value="${password}" ></property>
<property name="driverClass" value="${driverclass}"></property>
<property name="jdbcUrl" value="${jdbcurl}"></property>  
</bean>

conn.properties属性文件:

user=root
password=password
driverclass=com.mysql.jdbc.Driver
jdbcurl=jdbc:mysql:///student 

获取<bean> 的属性值:

#{bean的id.属性名}

配置工厂:

静态方法获取静态对象:

package a.b.e;

import java.util.HashMap;
import java.util.Map;

public class instantfactory {
	private static Map<String,Car> cars=new HashMap<String,Car>();
	static {
		cars.put("audi",new Car("audi"));
		cars.put("xiali",new Car("xiali"));
		
	}
	
	public static Car getCar(String brand) {
		return cars.get(brand);
	}
	
	
<bean id="car1" class="a.b.e.instantfactory" factory-method="getCar">
<constructor-arg value="audi"></constructor-arg>
</bean>

对象方法获取对象:

package a.b.e;

import java.util.HashMap;
import java.util.Map;

public class instantFactory2 {
    private Map<String,Car> cars=new HashMap<String,Car>();
public instantFactory2() {
	cars.put("audo", new Car("audo"));
	cars.put("xiali", new Car("xiali"));
}

public Car getCar(String brand) {
	return cars.get(brand);
}



}
<bean id="Factory" class="a.b.e.instantFactory2">
</bean>

<bean id="car2" factory-bean="Factory"  factory-method="getCar">
<constructor-arg value="xiali"></constructor-arg>
</bean>

配置bean 的初始函数,与销毁函数:

<bean id="car" class="a.e.Car" init-method="inti" destroy-method="destory"></bean>
<bean id="car1" class="a.e.Car" init-method="inti" destroy-method="destory"></bean>
package a.e;

public class Car {

	private String brand;
	public void inti() {
		System.out.println("init....");
	}
	public void destory() {
		System.out.println("destory....");
	}
	public String getBrand() {
		return brand;
	}
	public void setBrand(String brand) {
		this.brand = brand;
	}
	@Override
	public String toString() {
		return "Car [brand=" + brand + "]";
	}
}

 

 

配置初始化前处理函数与初始化处理函数:在这个配置文件中的所有bean 都要执行 这两个函数

<bean class="a.e.MyBeanPostProcessor"></bean>
package a.e;

import org.springframework.beans.BeansException;
import org.springframework.beans.factory.config.BeanPostProcessor;

public class MyBeanPostProcessor implements BeanPostProcessor {

	@Override
	public Object postProcessAfterInitialization(Object arg0, String arg1) throws BeansException {
		System.out.println("before ____   Bean");
		return arg0;
	}

	@Override
	public Object postProcessBeforeInitialization(Object arg0, String arg1) throws BeansException {
		// TODO Auto-generated method stub
		System.out.println("after ____   Bean");

		return arg0;
	}

建立数据库连接池,并从中获取连接:

package a.c;

import java.sql.SQLException;

import javax.sql.DataSource;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class propertt_ {
      public static void main(String arg[]) throws SQLException {
      ApplicationContext ctx=new ClassPathXmlApplicationContext("conn.xml");  
      DataSource dataSource=(DataSource) ctx.getBean("dataSource");
      System.out.println(dataSource.getConnection());
      }
}

 

<context:property-placeholder location="classpath:conn.properties"/>	
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="user" value="${user}"></property>
<property name="password" value="${password}" ></property>
<property name="driverClass" value="${driverclass}"></property>
<property name="jdbcUrl" value="${jdbcurl}"></property>  
</bean>

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring和MyBatis是两个非常流行的Java开发框架,它们可以很好地结合使用。 首先,你需要在你的项目中引入Spring和MyBatis的相关依赖。 对于Spring,你可以使用Maven或者Gradle来管理依赖。在你的项目的pom.xml(或者build.gradle)文件中,添加以下依赖: ```xml <!-- Spring核心依赖 --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>5.3.9</version> </dependency> <!-- Spring和MyBatis的集成依赖 --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis-spring</artifactId> <version>2.0.7</version> </dependency> ``` 接下来,你需要配置Spring和MyBatis的相关配置文件。 首先是Spring配置文件(比如applicationContext.xml),你可以在其中配置Spring的上下文和其他相关的Bean。 ```xml <!-- 配置Spring的上下文 --> <context:annotation-config/> <context:component-scan base-package="com.example"/> <!-- 配置数据源 --> <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/mydatabase"/> <property name="username" value="root"/> <property name="password" value="password"/> </bean> <!-- 配置事务管理器 --> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource"/> </bean> <!-- 配置MyBatis的SqlSessionFactory --> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource"/> <property name="mapperLocations" value="classpath:mapper/*.xml"/> </bean> <!-- 扫描MyBatis的Mapper接口 --> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackage" value="com.example.mapper"/> </bean> ``` 在上面的配置中,你需要根据你的数据库设置正确的数据源和连接信息。 接下来是MyBatis的配置文件(比如mybatis-config.xml),你可以在其中配置MyBatis的相关设置。 ```xml <configuration> <settings> <!-- 开启驼峰命名转换 --> <setting name="mapUnderscoreToCamelCase" value="true"/> </settings> </configuration> ``` 在上面的配置中,我们开启了MyBatis的驼峰命名转换,这样可以方便地将数据库中的下划线命名转换为Java中的驼峰命名。 最后,你需要创建Mapper接口和对应的Mapper XML文件来定义SQL语句和映射关系。 这样,你就完成了Spring和MyBatis的配置。在你的代码中,你可以使用Spring的依赖注入来获取MyBatis的Mapper接口,并使用它来进行数据库操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值