Spring配置主要有两种方式:

  1. XML配置文件

XML配置文件是Spring最早和最常用的配置方式。在XML配置文件中,可以定义bean、AOP切面、数据源、事务管理器等。

以下是一个简单的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"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-3.0.xsd">

<!-- 定义一个bean -->
<bean id="userService" class="com.example.UserService">
   <property name="userDao" ref="userDao" />
</bean>

<!-- 定义另一个bean -->
<bean id="userDao" class="com.example.UserDao">
   <property name="dataSource" ref="dataSource" />
</bean>

<!-- 定义数据源 -->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
   <property name="driverClassName" value="com.mysql.jdbc.Driver" />
   <property name="url" value="jdbc:mysql://localhost:3306/mydb" />
   <property name="username" value="root" />
   <property name="password" value="root" />
</bean>

<!-- 定义事务管理器 -->
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
   <property name="dataSource" ref="dataSource" />
</bean>

<!-- 开启注解驱动的AOP -->
<aop:aspectj-autoproxy />

<!-- 定义AOP切面 -->
<aop:config>
   <aop:aspect id="loggingAspect" ref="loggingAdvice">
      <aop:pointcut expression="execution(* com.example.*.*(..))" />
      <aop:before method="beforeAdvice" />
   </aop:aspect>
</aop:config>

<!-- 定义AOP切面的实现类 -->
<bean id="loggingAdvice" class="com.example.LoggingAdvice" />

<!-- 开启注解驱动的事务 -->
<tx:annotation-driven />

</beans>
  1. Java配置方式

Java配置方式是Spring 3.0开始引入的一种新的配置方式。Java配置方式可以将Spring的配置代码写成Java代码,而不是XML文件。这种方式可以提高代码的可读性和可维护性。

以下是一个简单的Java配置方式的示例:

@Configuration
public class AppConfig {

   @Bean
   public UserService userService() {
      UserService userService = new UserService();
      userService.setUserDao(userDao());
      return userService;
   }

   @Bean
   public UserDao userDao() {
      UserDao userDao = new UserDao();
      userDao.setDataSource(dataSource());
      return userDao;
   }

   @Bean
   public DataSource dataSource() {
      BasicDataSource dataSource = new BasicDataSource();
      dataSource.setDriverClassName("com.mysql.jdbc.Driver");
      dataSource.setUrl("jdbc:mysql://localhost:3306/mydb");
      dataSource.setUsername("root");
      dataSource.setPassword("root");
      return dataSource;
   }

   @Bean
   public PlatformTransactionManager transactionManager() {
      DataSourceTransactionManager transactionManager = new DataSourceTransactionManager();
      transactionManager.setDataSource(dataSource());
      return transactionManager;
   }

   @Bean
   public LoggingAdvice loggingAdvice() {
      return new LoggingAdvice();
   }

   @Bean
   public DefaultPointcutAdvisor defaultPointcutAdvisor() {
      AspectJExpressionPointcut pointcut = new AspectJExpressionPointcut();
      pointcut.setExpression("execution(* com.example.*.*(..))");

      DefaultPointcutAdvisor advisor = new DefaultPointcutAdvisor();
      advisor.setAdvice(loggingAdvice());
      advisor.setPointcut(pointcut);
      return advisor;
   }

   @Bean
   public AnnotationTransactionAttributeSource transactionAttributeSource() {
      return new AnnotationTransactionAttributeSource();
   }

   @Bean
   public TransactionInterceptor transactionInterceptor() {
      TransactionInterceptor interceptor = new TransactionInterceptor();
      interceptor.setTransactionManager(transactionManager());
      interceptor.setTransactionAttributeSource(transactionAttributeSource());
      return interceptor;
   }

   @Bean
   public BeanNameAutoProxyCreator beanNameAutoProxyCreator() {
      BeanNameAutoProxyCreator creator = new BeanNameAutoProxyCreator();
      creator.setInterceptorNames("transactionInterceptor");
      creator.setBeanNames("*Service");
      return creator;
   }

}
spring怎么配置

原文地址: https://www.cveoy.top/t/topic/bwiT 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录