您的位置:首页 > 房产 > 建筑 > Spring简单代码

Spring简单代码

2024/12/23 11:15:16 来源:https://blog.csdn.net/xue208212674/article/details/140149647  浏览:    关键词:Spring简单代码

Spring代码

导入坐标

<dependencies><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>5.2.10.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc</artifactId><version>5.2.10.RELEASE</version></dependency><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.5.6</version></dependency><dependency><groupId>org.mybatis</groupId><artifactId>mybatis-spring</artifactId><version>1.3.0</version></dependency><dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.1.16</version></dependency><dependency><groupId>c3p0</groupId><artifactId>c3p0</artifactId><version>0.9.1.2</version></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.13.2</version><scope>test</scope></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-test</artifactId><version>5.2.10.RELEASE</version></dependency><dependency><groupId>com.mysql</groupId><artifactId>mysql-connector-j</artifactId><version>8.0.31</version></dependency><dependency><groupId>org.aspectj</groupId><artifactId>aspectjweaver</artifactId><version>1.9.4</version></dependency></dependencies>

SpringConfig

import org.springframework.context.annotation.*;
import org.springframework.transaction.annotation.EnableTransactionManagement;@Configuration
@EnableAspectJAutoProxy
@PropertySource({"Jdbc.properties"})
@Import({JdbcConfig.class,MybatisConfig.class})
@ComponentScan("com.demo")
@EnableTransactionManagement
public class SpringConfig {
}

JDBCConfig

import com.alibaba.druid.pool.DruidDataSource;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.jdbc.datasource.DataSourceTransactionManager;
import org.springframework.transaction.PlatformTransactionManager;import javax.sql.DataSource;public class JdbcConfig {@Value("${jdbc.driver}")private String driver;@Value("${jdbc.url}")private String url;@Value("${jdbc.username}")private String name;@Value("${jdbc.password}")private String password;@Beanpublic DataSource dataSource(){DruidDataSource ds = new DruidDataSource();ds.setDriverClassName(driver);ds.setUrl(url);ds.setUsername(name);ds.setPassword(password);System.out.println(ds);return ds;}@Beanpublic PlatformTransactionManager transactionManager(DataSource dataSource){DataSourceTransactionManager dtm = new DataSourceTransactionManager();dtm.setDataSource(dataSource);return dtm;}
}

MyBatisConfig

import org.mybatis.spring.SqlSessionFactoryBean;
import org.mybatis.spring.mapper.MapperScannerConfigurer;
import org.springframework.context.annotation.Bean;
import javax.sql.DataSource;public class MybatisConfig {@Beanpublic SqlSessionFactoryBean sqlSessionFactory(DataSource dataSource){SqlSessionFactoryBean ssfb = new SqlSessionFactoryBean();ssfb.setDataSource(dataSource);ssfb.setTypeAliasesPackage("com.demo.entry");return ssfb;}@Beanpublic MapperScannerConfigurer mapperScannerConfigurer(){MapperScannerConfigurer msc = new MapperScannerConfigurer();msc.setBasePackage("com.demo.Dao");return msc;}
}

IOC与AOP

IOC(控制反转)

1.使用对象时,创建对象不要自己new了,转换为由外部提供对象。这个外部就是IoC容器
2.对象的创建控制权由程序转移到外部,这种思想叫控制反转。
3.IoC容器负责对象的创建、初始化等工作,被创建或管理的对象在Ioc容器中被统称为Bean。

依赖注入(DI)

在容器中建立bean与bean之间的依赖关系的整个过程,叫依赖注入。

配置文件:context相关

<context:component-scan base-package="com.demo"></context:component-scan>
<context:property-placeholder location="classpath:*.properties" system-properties-mode="NEVER"></context:property-placeholder>

AOP(面向切面编程):代理模式

在不惊动原始设计的基础上为其进行功能增强
代理(Proxy):SpringAOP的核心本质是采用代理模式实现的
连接点(JoinPoint):在SpringAOP中,理解为任意方法的执行
切入点(Pointcut):匹配连接点的式子,也具有共性功能的方法描述
通知(Advice):若干个方法的共性功能,在切入点处执行,最终体现为一个方法
切面(Aspect):描述通知与切入点的对应关系
目标对象(Target):被代理的原始对象成为目标对象

aop通知
前置通知(@Before)
后置通知(@After)
环绕通知(@Around)
返回后通知(@AfterReturning)
抛异常后通知(@AfterThrowing)

事务处理

public interface PlatformTransactionManager extends TransactionManager {TransactionStatus getTransaction(@Nullable TransactionDefinition var1) throws TransactionException;void commit(TransactionStatus var1) throws TransactionException;void rollback(TransactionStatus var1) throws TransactionException;
}
public class DataSourceTransactionManager implements PlatformTransactionManager {
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com