1. Spring笔记07-Hibernate JPA与Spring Data

    7.1 映射JPA实体

    JPA: Java Persistence API 它是从EJB3中抽取出来的。

    • EntityManagerFactory
    • EntityManager
    • persistence.xml
    • @Entity
    • @Column
    • @Table

    要使用JPA,我们需要添加依赖:

    compile group: 'javax', name: 'javaee-api', version: '7.0'
    

    我们来新建数据:

    @Entity
    public class Account {
        @Id
        private Long id;
        private BigDecimal balance;
    
       //...
    }
    

    然后配置数据源:

    @Configuration
    @ComponentScan(basePackages = "lx.spring.core")
    @PropertySource("classpath:prod.properties")
    @EnableTransactionManagement
    public ...
    Tagged as : Java Spring
  2. Spring笔记06-使用JdbcTemplate进行数据访问

    6.1 实例化和配置

    没有Spring的情况下,JDBC非常难用;有了Spring,JDBC就变得比较靠谱可用了。

    这里我们在Bean中使用DataSourceJdbcTemplate进行初始化。

    @Repository
    @Profile("test")
    public class JdbcAccountRepository implements AccountRepository {
    
        private JdbcTemplate template;
        private static long nextId = 4;
    
        @Autowired
        public JdbcAccountRepository(DataSource dataSource) {
            template = new JdbcTemplate(dataSource);
        }
    }
    

    后面我们看如何配置多个DataSource

    6.2 定义数据源Data Source

    之前我们已经讲了@Component,但是在实际中我们更多的遇到的是@Service@Repository@Controller ...

    Tagged as : Java Spring
  3. Spring笔记05-Spring事务

    5.1 声明事务管理

    ACID 属性:

    Atomic原子:All or Nothing

    Consistent一致性: DB integrity constraints never violated

    Isolated: How transactions see work done by others

    Durable: Committed changes are permanent

    我们一般是在Service层声明事务。

    5.1.1 @Transactional注解

    @Transactional注解允许我们管理一个事务管理器。Spring不直接提供事务管理器,它提供一个hook连接到已经存在的事务管理器,比如我们使用关系数据库,那Spring就是使用关系数据库的事务管理器。Spring的Bean和Entity允许我们请求事务管理器,设置属性(比如超时、只读等)。

    应用Spring的事务需要两步:

    1. 应用Transactional注解 a. XML格式 b ...
    Tagged as : Java Spring
  4. Spring笔记04-使用Spring进行测试

    4.1 标准测试注解和injecting fixture

    Spring的一个特点是测试Component非常方便。

    现在我们为BaseballGame创建BaseballGameTest。然后做测试:

    public class BaseballGameTest {
        private Game game;
        private ApplicationContext ctx;
    
        @Before
        public void setUp() throws Exception {
            ctx = new AnnotationConfigApplicationContext(AppConfig.class);
            game = ctx.getBean("game", Game.class);
        }
    
        @Test
        public void playGame() throws Exception {
            String home = game.getHomeTeam().getName();
            String away = game ...
    Tagged as : Java Spring
  5. Spring笔记03-面向切面编程AOP

    3.1 AOP的概念

    AOP适用于以下场景:代码交织(code tangling)和代码分散(code scattering)

    代码交织是指一个方法完成多个功能,这几个功能之间又没有必然联系,比如我们需要做日志、检查授权和执行业务逻辑,如果我们不用AOP的话那这三个就混在一起了。

    代码分散式指比如我们有多处需要做日志,然后这些代码在多个地方重复。

    AOP允许我们将这些动作封装成一个类,然后告诉Spring我们希望在多个地方调用这个类(成为Aspect),从而避免代码交织和分散。

    AOP会设计到一下几个概念:

    • 连接点Join Point
    • 切入点Point Cut
    • Advice
    • Aspect
    • Weaving

    3.1.1 连接点(Join Point)和切入点(Point Cut)

    连接点,指的是我们能够应用我们Aspect的地方。这是告诉我们where to use the Aspects. 在一般概念的AOP上,我们可以在任何地方用Aspect,但是Spring对这一规则做了限制,我们只能用在Spring管理的Bean的公共方法中。

    切入点一般来说可以认为和连接点类似 ...

    Tagged as : Java Spring
  6. Spring笔记02-配置Bean

    2.1 构造函数和Setter注入

    之前我们基于注解的配置是这样的:

    @Configuration
    @ComponentScan(basePackages = "lx.spring.core")
    public class AppConfig {
    
        @Autowired
        private DataSource dataSource;
    
        @Autowired @Qualifier("redSox")
        private Team home;
    
        @Autowired @Qualifier("cubs")
        private Team away;
    
        @Bean
        public Game game() {
            BaseballGame game = new BaseballGame(home, away);
            game.setDataSource(dataSource);
            return game;
        }
    }
    

    我们知道如果没有@Qualifier注解,就会报错。但是如果我们把home ...

    Tagged as : Java Spring
  7. Spring笔记01-构建应用

    1.1 一个Spring的简单Java应用

    1.1.1 创建应用

    这里,我们用Gradle创建Spring的应用。

    group 'lx.spring.core'
    version '1.0-SNAPSHOT'
    
    apply plugin: 'java'
    
    sourceCompatibility = 1.8
    
    repositories {
        mavenCentral()
    }
    
    dependencies {
        compile group: 'org.springframework', name: 'spring-context', version: '4.3.2.RELEASE'
        testCompile group: 'org.springframework', name: 'spring-test', version: '4.3.2.RELEASE'
        testCompile group: 'junit ...
    Tagged as : Java Spring
  8. Spring Boot学习笔记

    1. 环境配置

    1.1 创建应用

    打开idea,新建应用:

    img

    然后输入包名、应用名:

    img

    其他默认。

    1.2 修改build.gradle

    打开build.gradle,修改dependencies:

    group 'io.github.liulixiang1988'
    version '1.0-SNAPSHOT'
    
    buildscript {
        repositories {
            mavenCentral()
        }
        dependencies {
            classpath 'org.springframework.boot:spring-boot-gradle-plugin:1.3.3.RELEASE'
        }
    }
    
    apply plugin: 'java'
    apply plugin: 'spring-boot'
    
    sourceCompatibility = 1.5
    
    repositories {
        mavenCentral()
    }
    
    dependencies {
        compile ...
    Tagged as : Java Spring

Page 1 / 1