`
wiselyman
  • 浏览: 2094330 次
  • 性别: Icon_minigender_1
  • 来自: 合肥
博客专栏
Group-logo
点睛Spring4.1
浏览量:82373
74ae1471-94c5-3ae2-b227-779326b57435
点睛Spring MVC4...
浏览量:130816
社区版块
存档分类
最新评论

Spring4.0系列8-Groovy DSL

 
阅读更多

Spring4.0系列1-新特性

Spring4.0系列2-环境搭建

Spring4.0系列3-@RestController

Spring4.0系列4-Meta Annotation(元注解)

Spring4.0系列5-@Conditional 

Spring4.0系列6-Generic Qualifier(泛型限定)

Spring4.0系列7-Ordering Autowired Collections

Spring4.0系列8-Groovy DSL

Spring4.0系列9-websocket简单应用

更多正在编写中。。。

 

4.0的一个重要特征就是完全支持Groovy,Groovy是Spring主导的一门基于JVM的脚本语言(动态语言)。在spring 2.x,脚本语言通过 Java scripting engine在Spring中得到支持。而在4.0中,Groovy的变得更重要,Groovy可以替换xml和注解用来作为bean配置。

要使用Groovy,首先用maven下载Groovy的包,pom.xml文件中添加:

<dependency>
 <groupId>org.codehaus.groovy</groupId>
 <artifactId>groovy-all</artifactId>
 <version>2.1.8</version>
</dependency>

 下面使用xml,java annotation,groovy dsl实现相同功能的不同配置方式比较

XML

<jdbc:embedded-database id="dataSource" type="H2">
</jdbc:embedded-database>

<bean
 class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"
 id="entityManagerFactory">
 <property name="persistenceUnitName" value="persistenceUnit" />
 <property name="dataSource" ref="dataSource" />
 <property name="persistenceProviderClass" value="org.hibernate.ejb.HibernatePersistence"></property>
 <property name="packagesToScan">
  <array>
   <value>com.hantsylabs.example.spring.model</value>
  </array>
 </property>
 <property name="jpaProperties">
  <value>
   hibernate.format_sql=true
   hibernate.show_sql=true
   hibernate.hbm2ddl.auto=create
  </value>
 </property>
</bean>

<bean class="org.springframework.orm.jpa.JpaTransactionManager"
 id="transactionManager">
 <property name="entityManagerFactory" ref="entityManagerFactory" />
</bean>

 

Annotation

 

@Configuration
@ComponentScan(basePackages = { "com.hantsylabs.example.spring.dao","com.hantsylabs.example.spring.jpa" })
@EnableTransactionManagement(mode=AdviceMode.ASPECTJ)
public class JpaConfig {

 @Bean
 public DataSource dataSource() {
  return new EmbeddedDatabaseBuilder().setType(EmbeddedDatabaseType.H2).build();
 }

 @Bean
 public LocalContainerEntityManagerFactoryBean entityManagerFactory() {
  LocalContainerEntityManagerFactoryBean emf = new LocalContainerEntityManagerFactoryBean();
  emf.setDataSource(dataSource());
  emf.setPackagesToScan("com.hantsylabs.example.spring.model");
  emf.setPersistenceProvider(new HibernatePersistence());
  emf.setJpaProperties(jpaProperties());
  return emf;
 }

 private Properties jpaProperties() {
  Properties extraProperties = new Properties();
  extraProperties.put("hibernate.format_sql", "true");
  extraProperties.put("hibernate.show_sql", "true");
  extraProperties.put("hibernate.hbm2ddl.auto", "create");
  return extraProperties;
 }

 @Bean
 public PlatformTransactionManager transactionManager() {
  return new JpaTransactionManager(entityManagerFactory().getObject());
 }

}

 

Groovy DSL

import org.apache.commons.dbcp.BasicDataSource
import org.springframework.orm.jpa.JpaTransactionManager
import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean
import com.hantsylabs.example.spring.jpa.JpaConferenceDaoImpl

beans {
     dataSource(BasicDataSource) {   
         driverClassName = "org.h2.Driver"
         url = "jdbc:h2:mem:spring4-sandbox"
         username = "sa"
         password = ""
     }
  
  entityManagerFactory(LocalContainerEntityManagerFactoryBean){
   persistenceProviderClass="org.hibernate.ejb.HibernatePersistence"
   dataSource=dataSource
   persistenceUnitName="persistenceUnit"
   packagesToScan=["com.hantsylabs.example.spring.model"]
   jpaProperties=[
    "hibernate.format_sql":"true",
    "hibernate.show_sql":"true",
    "hibernate.hbm2ddl.auto":"create"
    ]
  }
  
  transactionManager(JpaTransactionManager){
   entityManagerFactory=entityManagerFactory
  }
  
  conferenceDao(JpaConferenceDaoImpl){
  }

 }

 

新书推荐《JavaEE开发的颠覆者: Spring Boot实战》,涵盖Spring 4.x、Spring MVC 4.x、Spring Boot企业开发实战。

 

京东地址:http://item.jd.com/11894632.html

当当地址:http://product.dangdang.com/23926195.html

亚马逊地址:http://www.amazon.cn/图书/dp/B01D5ZBFUK/ref=zg_bsnr_663834051_6 

淘宝地址:https://item.taobao.com/item.htm?id=528426235744&ns=1&abbucket=8#detail

 

或自己在京东、淘宝、亚马逊、当当、互动出版社搜索自选。

 


1
6
分享到:
评论

相关推荐

    Spring 4.0 官方参考手册

    - **Groovy Bean Definition DSL**:引入 Groovy 语言编写的配置 DSL。 - **核心容器改进**:增强了核心容器的功能,提高了性能和灵活性。 - **Web 改进**:增强了 Web 相关组件的功能,例如 Servlet 3.1 支持等。 -...

    workshop-spring-4.0-to-4.2:Spring 4新功能研讨会

    Spring4.0 Groovy Bean定义DSL 从Spring Framework 4.0开始,可以使用Groovy DSL定义外部bean配置。 这在概念上与使用XML bean定义相似,但是允许使用更简洁的语法。 使用Groovy还使您可以轻松地将bean定义直接...

    spring-framework-reference-4.3.19.pdf

    - **Groovy Bean Definition DSL**:Spring 4.0引入了Groovy DSL来定义Bean配置,提供了一种更简洁、更易于阅读的方式。 - **核心容器改进**:包括BeanFactory后处理器的增强、更强大的Bean工厂功能等。 - **Web改进...

    spring4.0 包

    对于配置,Spring 4.0引入了Groovy DSL,提供了一种更简洁的替代XML的方式,允许开发者用Groovy语法编写配置,提高了可读性和可维护性。 7. **类型安全的MessageConverter**: 为了增强HTTP消息转换功能,Spring ...

    Spring Framework 4.0 Documentation

    在Spring Framework 4.x的新特性中,文档突出了Java 8、Java EE 6和Java EE 7的支持,Groovy Bean定义DSL的引入,以及核心容器、Web层、WebSocket、SockJS和STOMP消息传递的改进。测试模块也得到了增强,为开发人员...

    spring4.0 Generic Qualifier(泛型限定).docx

    它还引入了Groovy式的Bean定义DSL,允许更简洁的配置方式。在Web框架方面,Spring 4.0增强了WebSocket支持,使得实时通信更加容易实现。测试方面也有所增强,提供了更好的测试工具和API,使得单元测试和集成测试更加...

    spring-framework-reference-4.3.1.RELEASE

    - **Java 8支持**:随着Java 8的发布,Spring 4.0增加了对Java 8特性的支持,如Lambda表达式和流(Stream)等。 - **Java EE 6和7支持**:Spring 4.0增强了对Java EE标准的支持,特别是对Java EE 6和7的支持。 - **...

    spring-framework-reference

    - **Groovy Bean Definition DSL**:提供 Groovy 语言的配置方式,使配置更加灵活。 - **核心容器改进**:增强 BeanFactory 和 ApplicationContext 的功能,提高性能。 - **通用 Web 改进**:改进了 Spring MVC 和...

    Spring Framework Reference_4.1.3.pdf

    - **Java 8 及其兼容性:** Spring 4.0 支持 Java 8,同时仍然兼容 Java 6 和 Java 7。 - **Java EE 6 和 7:** 该版本支持最新的 Java EE 规范,提供了更强大的企业级应用支持。 - **Groovy Bean Definition DSL:*...

    spring-framework-4-reference

    Spring Framework 4.0中引入了对Java 8的支持,并且改进了对Java 6和Java 7的支持。另外,新增了对Java EE 6和Java EE 7的支持,并引入了Groovy Bean Definition DSL,使得使用Groovy语言定义bean更加方便。核心容器...

    spring-framework-reference-2.4.4

    - **Groovy Bean定义DSL:** 提供了使用Groovy语言定义Bean的能力。 - **核心容器改进:** 核心容器得到了增强,提高了性能和可用性。 - **Web改进:** 包括对RESTful应用的改进。 - **WebSocket、SockJS和STOMP消息...

    spring-framework-reference.pdf

    - **Groovy Bean Definition DSL(Groovy Bean Definition DSL)**:引入了使用Groovy语言定义Bean的新方式。 - **核心容器改进(Core Container Improvements)**:增强了核心容器的功能。 - **通用Web改进(General Web...

    spring-framework-4.2.2.RELEASE

    - Spring Framework 4.0带来了对Java 8的支持,同时也保证了与Java 6和7的兼容性。此外,它还提供了对Java EE 6和7的支持,以及Groovy语言编写的Bean定义DSL(Domain Specific Language,领域特定语言)。 - 核心...

    最新springframework-4.0.2开发文档

    - **Java 8支持**:Spring 4.0引入了对Java 8的支持,利用Lambda表达式和流(Stream API)等新特性。 - **Java EE 6和7**:Spring 4.x增强了与Java EE标准的集成,特别是Java EE 6和7。 - **Groovy Bean Definition ...

    spring-framework-reference-4.3.10.RELEASE

    - **Java 8 支持**:Spring 4.0 开始支持 Java 8,充分利用其新特性,如 Lambda 表达式和 Stream API。 - **Java EE 6 和 7 支持**:Spring 4.0 支持最新的 Java EE 规范。 - **Groovy Bean Definition DSL**:引入...

    spring-framework-4-reference.pdf

    在Spring Framework 4.0中,开发者可以看到Java 8的支持,并且移除了一些不推荐使用的包和方法。Java EE 6和Java EE 7的集成也得到了增强,同时引入了Groovy Bean Definition DSL,允许开发者以Groovy脚本的方式定义...

    spring-framework-reference-4.0.0

    - **Groovy Bean Definition DSL**:为Groovy用户提供了一种更自然的方式来定义bean。 - **核心容器改进**:增强了BeanFactory和ApplicationContext的功能。 - **通用Web改进**:提高了Web应用开发的灵活性和效率。 ...

    spring-framework-reference-4.pdf

    Spring 4.0引入了使用Groovy语言编写的Bean定义DSL(领域特定语言),简化了基于Spring的应用配置。 3.6 核心容器的改进 核心容器模块得到了增强,提高了配置和使用上的灵活性。 3.7 通用Web改进 Spring 4.x增强了...

    spring-framework-4-reference 中文文档

    - **Groovy Bean Definition DSL**:提供了 Groovy 语言编写配置文件的支持。 - **核心容器改进**:增强了 Bean 的生命周期管理,引入了新的 API。 - **Web 改进**:增强了 MVC 和 WebSocket 的支持。 - **...

Global site tag (gtag.js) - Google Analytics