- 浏览: 727925 次
- 性别:
- 来自: 天津
文章分类
- 全部博客 (442)
- 中间件 (20)
- hibernate (13)
- spring (20)
- 数据库 (78)
- struts (8)
- ibatis (4)
- 前端 (61)
- linux,windows (21)
- it大环境 (32)
- IDE工具 (36)
- 感悟 (6)
- java基础 (40)
- 经典面试题 (10)
- exception总结 (14)
- 软件设计 (8)
- 工具类应用及新技术 (48)
- php (2)
- 微信 (1)
- 设计模式 (2)
- 重构 (3)
- 管理 (2)
- 工作笔记 (1)
- jmx (1)
- 算法 (4)
- 多线程同步 (2)
- 代码管理工具 (5)
- 代码检测及测试 (2)
- 缓存服务 (1)
- SOA及ROA (5)
- groovy (1)
- 网络编程 (2)
- 大数据 (6)
最新评论
-
love398146779:
我当然不能全写上面了,这只是其中一部分https连接。
java 建立 https连接 -
yuenkin:
大哥,这是双向认证吗?
java 建立 https连接 -
issu:
例如以下代码能遍历字符串"Tom:M ...
<c:forTokens>标签delims截取字符 -
love398146779:
2*3*5=30,是30个以上的请求才拒绝呀。
tomcat的maxThreads、acceptCount(最大线程数、最大排队数) -
love398146779:
2台跟1台一样的效果。
zookeeper与activemq最新存储replicatedLevelDB整合
想说一下spring连接数据库,dao层可以有两种方式比较简单。
1.dao继承jdbcDaoSuport,这时需要配置文件中加入一行(将dataSource放入dao中),代码中直接调用gettemplet(),就可以与数据库交互。
2.dao继承jdbcTemplet,这时用注解最简单,只要在dao里将dataSource注解上@resourse.就可以高枕了。配置文件中不用1中的步骤就可以。代码里直接用templet中的方法就与数据库交互了。
上面的年前自己测过,但是没总结,现在用到又得重新搞,可见总结多么重要。
下面,说下要知道的常识:
applicationContext.xml 里,大致示例如下:
在上面的示例中,我们可以典型的看到Spring的三种功能:
1、IoC容器,如:
<bean …>
<property…/>
</bean>
2、AOP
<aop:config/>
3、事务
<tx:advice/>
首先我们学习如何使用注解来构造IoC容器。
用注解来向Spring容器注册Bean。需要在applicationContext.xml中注册<context:component-scan base-package=“cn.javass”/>。表明cn.javass包及其子包中,如果某个类的头上带有特定的注解【@Component/@Repository/@Service/@Controller】,就会将这个对象作为Bean注册进Spring容器。
以上的4个注解,用法完全一摸一样,只有语义上的区别。
@Component 是所有受Spring 管理组件的通用形式,Spring 还提供了更加细化的注解形式: @Repository 、@Service 、@Controller ,它们分别对应数据层Bean ,业务层Bean ,和表现层Bean 。
其中,@Component不推荐使用。
这四个注解都可以放在类的头上,如果不指定其value【@Service】,则默认的bean名字为这个类的简单类名首字母小写;如果指定value【@Service(“dao”)】,则使用value作为ban名字。
注意:如果cn.javass.SampleDao和cn.javass1.SampleDao都只用@Service注解,而不指定value会发生什么事?
除了注册Bean之外,还可以通过在<bean>上设置属性来控制Bean的其他属性,比如:
<bean name="" class=""
lazy-init=“true” //是否延迟初始化
scope=“prototype” //bean的生命周期
depends-on=“其他bean“ //依赖其他bean
/>
在Spring中也有相应的注解去对应
@Lazy
@Scope
@DependsOn
他们都是放在类的头上。
除了注册Bean之外,还可以通过在<bean>上设置属性来控制Bean的初始化方法和析构方法,比如:
<bean name="" class=""
init-method=“init“ //初始化方法
destroy-method=“close“ //析构方法
/>
在Spring中也有相应的Bean去对应,当然,这两个注解是jdk里内置的
@PostConstruct
@PreDestroy
这两个注解放在方法头上。
@Autowired 根据bean 类型从spring 上下文中进行查找。我们需要从以下几方面来学习这个注解:
1、它都能放在什么头上?
它可以放在属性、方法和构造方法头上。
2、根据什么注入?
2.1、如果某个接口的实现类在Spring容器中唯一的话,仅使用@Autowired就可以正确注入,如:
@Autowired
private SampleDao dao;
2.2、如果某个接口的实现类在Spring容器中不唯一
2.2.1、用@Qualifier来指定注入Bean的名字,如
@Autowired
@Qualifier(“sampleDaoImpl”)
private SampleDao dao;
2.2.2、用@Primary在多个Bean之中指定哪个为最优先者,注意它不是跟@Autowired配合使用,而是跟@Service配合使用,如
@Service @Primary SampleDaoImpl
2.2.3、用属性名、方法参数名、构造方法参数名来设置注入哪个 Bean,如
public class SampleDaoImpl implements SampleDao
public class SampleDaoImpl1 implements SampleDao
对应
@Autowired
private SampleDao sampleDaoImpl;
注意:属性名在编译后是一定存在的;但是方法参数名和构造方法参数名必须指定相应的编译选项才能保留。
3、@Autowired只有一个选项, boolean required() default true;是否必须,且默认为true。因此,如果仅仅使用@Autowired,就必须要能注入,否则会报错。
@Resource拥有和@Autowired类似的作用。
Spring还支持使用@Configuration,把一个类作为一个IoC容器,它的某个方法头上如果注册了@Bean,就会作为这个Spring容器中的Bean。
java代码:
查看复制到剪贴板打印
@Configuration("ctx")
public class JavaApplicationContext {
@Bean
public String hello(){
return "hello";
}
@Bean
public int max(){
return 9;
}
}
使用AnnotationConfigApplicationContext获得Spring容器
ApplicationContext context = new AnnotationConfigApplicationContext(JavaApplicationContext.class);
使用@ImportResource (“classpath:applicationContext.xml”)可以把其他容器导入到这个容器中。
Spring使用的AOP注解分为三个层次:
1、@Aspect放在类头上,把这个类作为一个切面,但是这个类一定要显式的注册在Spring容器中。
2、 @Pointcut放在方法头上,定义一个可被别的方法引用的切入点表达式。
3、5种通知。 www.2cto.com
3.1、@Before,前置通知,放在方法头上。
3.2、@After,后置【finally】通知,放在方法头上。
3.3、@AfterReturning,后置【try】通知,放在方法头上,使用returning来引用方法返回值。
3.4、@AfterThrowing,后置【catch】通知,放在方法头上,使用throwing来引用抛出的异常。
3.5、@Around,环绕通知,放在方法头上,这个方法要决定真实的方法是否执行,而且必须有返回值。
1.dao继承jdbcDaoSuport,这时需要配置文件中加入一行(将dataSource放入dao中),代码中直接调用gettemplet(),就可以与数据库交互。
2.dao继承jdbcTemplet,这时用注解最简单,只要在dao里将dataSource注解上@resourse.就可以高枕了。配置文件中不用1中的步骤就可以。代码里直接用templet中的方法就与数据库交互了。
上面的年前自己测过,但是没总结,现在用到又得重新搞,可见总结多么重要。
下面,说下要知道的常识:
applicationContext.xml 里,大致示例如下:
<beans> <bean name="ds" class="org.apache.commons.dbcp.BasicDataSource"> <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"/> <property name="url" value="jdbc:oracle:thin:@localhost:1521:wangbin"/> <property name="username" value="tech37"/> <property name="password" value="tech37"/> </bean> <bean name="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="ds"/> </bean> <tx:advice id="txAdvice" transaction-manager="txManager"> <tx:attributes> <tx:method name="get*" read-only="true"/> <tx:method name="*"/> </tx:attributes> </tx:advice> <aop:config> <aop:advisor advice-ref="txAdvice" pointcut="execution(* cn.javass..business.ebo.*Ebo.*(..))"/> </aop:config> </beans>
在上面的示例中,我们可以典型的看到Spring的三种功能:
1、IoC容器,如:
<bean …>
<property…/>
</bean>
2、AOP
<aop:config/>
3、事务
<tx:advice/>
首先我们学习如何使用注解来构造IoC容器。
用注解来向Spring容器注册Bean。需要在applicationContext.xml中注册<context:component-scan base-package=“cn.javass”/>。表明cn.javass包及其子包中,如果某个类的头上带有特定的注解【@Component/@Repository/@Service/@Controller】,就会将这个对象作为Bean注册进Spring容器。
以上的4个注解,用法完全一摸一样,只有语义上的区别。
@Component 是所有受Spring 管理组件的通用形式,Spring 还提供了更加细化的注解形式: @Repository 、@Service 、@Controller ,它们分别对应数据层Bean ,业务层Bean ,和表现层Bean 。
其中,@Component不推荐使用。
这四个注解都可以放在类的头上,如果不指定其value【@Service】,则默认的bean名字为这个类的简单类名首字母小写;如果指定value【@Service(“dao”)】,则使用value作为ban名字。
注意:如果cn.javass.SampleDao和cn.javass1.SampleDao都只用@Service注解,而不指定value会发生什么事?
除了注册Bean之外,还可以通过在<bean>上设置属性来控制Bean的其他属性,比如:
<bean name="" class=""
lazy-init=“true” //是否延迟初始化
scope=“prototype” //bean的生命周期
depends-on=“其他bean“ //依赖其他bean
/>
在Spring中也有相应的注解去对应
@Lazy
@Scope
@DependsOn
他们都是放在类的头上。
除了注册Bean之外,还可以通过在<bean>上设置属性来控制Bean的初始化方法和析构方法,比如:
<bean name="" class=""
init-method=“init“ //初始化方法
destroy-method=“close“ //析构方法
/>
在Spring中也有相应的Bean去对应,当然,这两个注解是jdk里内置的
@PostConstruct
@PreDestroy
这两个注解放在方法头上。
@Autowired 根据bean 类型从spring 上下文中进行查找。我们需要从以下几方面来学习这个注解:
1、它都能放在什么头上?
它可以放在属性、方法和构造方法头上。
2、根据什么注入?
2.1、如果某个接口的实现类在Spring容器中唯一的话,仅使用@Autowired就可以正确注入,如:
@Autowired
private SampleDao dao;
2.2、如果某个接口的实现类在Spring容器中不唯一
2.2.1、用@Qualifier来指定注入Bean的名字,如
@Autowired
@Qualifier(“sampleDaoImpl”)
private SampleDao dao;
2.2.2、用@Primary在多个Bean之中指定哪个为最优先者,注意它不是跟@Autowired配合使用,而是跟@Service配合使用,如
@Service @Primary SampleDaoImpl
2.2.3、用属性名、方法参数名、构造方法参数名来设置注入哪个 Bean,如
public class SampleDaoImpl implements SampleDao
public class SampleDaoImpl1 implements SampleDao
对应
@Autowired
private SampleDao sampleDaoImpl;
注意:属性名在编译后是一定存在的;但是方法参数名和构造方法参数名必须指定相应的编译选项才能保留。
3、@Autowired只有一个选项, boolean required() default true;是否必须,且默认为true。因此,如果仅仅使用@Autowired,就必须要能注入,否则会报错。
@Resource拥有和@Autowired类似的作用。
Spring还支持使用@Configuration,把一个类作为一个IoC容器,它的某个方法头上如果注册了@Bean,就会作为这个Spring容器中的Bean。
java代码:
查看复制到剪贴板打印
@Configuration("ctx")
public class JavaApplicationContext {
@Bean
public String hello(){
return "hello";
}
@Bean
public int max(){
return 9;
}
}
使用AnnotationConfigApplicationContext获得Spring容器
ApplicationContext context = new AnnotationConfigApplicationContext(JavaApplicationContext.class);
使用@ImportResource (“classpath:applicationContext.xml”)可以把其他容器导入到这个容器中。
Spring使用的AOP注解分为三个层次:
1、@Aspect放在类头上,把这个类作为一个切面,但是这个类一定要显式的注册在Spring容器中。
2、 @Pointcut放在方法头上,定义一个可被别的方法引用的切入点表达式。
3、5种通知。 www.2cto.com
3.1、@Before,前置通知,放在方法头上。
3.2、@After,后置【finally】通知,放在方法头上。
3.3、@AfterReturning,后置【try】通知,放在方法头上,使用returning来引用方法返回值。
3.4、@AfterThrowing,后置【catch】通知,放在方法头上,使用throwing来引用抛出的异常。
3.5、@Around,环绕通知,放在方法头上,这个方法要决定真实的方法是否执行,而且必须有返回值。
发表评论
-
spring-boot 对没有结束符的HTML5标签解析出错解决办法
2017-10-09 11:25 939http://blog.csdn.net/ngl272/art ... -
Cannot convert value of type [java.lang.String] to required type [javax.sql.Dat
2016-12-27 11:40 1023无法将你的datasource里配置的字符串转换成javax. ... -
项目迁移(org.springframework.context.annotation.AnnotationConfigBeanDefinitionParser
2016-01-03 09:13 1265http://bbs.csdn.net/topics/3908 ... -
详解Spring MVC 4常用的那些注解
2014-11-26 11:57 741http://aijuans.iteye.com/blog/2 ... -
spring mvc返回json格式配置要求
2014-09-09 16:11 744The resource identified by this ... -
spring的beanFactory和factoryBean
2014-08-08 20:03 8546org.springframework.beans及org.s ... -
Digest来验证
2014-08-08 19:08 549Apache默认使用basic模块验证,但它只是明文验证。 D ... -
spring security
2014-08-01 20:03 377http://baike.baidu.com/view/267 ... -
SpringMVC---返回String乱码
2014-06-16 19:29 559最近在用SpringMVC,发现一个问题。 方法名上写上注解r ... -
datasourse(dbcp,c3p0)
2014-05-09 17:06 607<bean id="fsDataSource& ... -
spring中context:property-placeholder/元素
2014-05-09 16:55 402为简化PropertyPlaceholderConfigure ... -
spring IOC之Bean的scope属性值
2014-05-05 09:57 898spring IOC之Bean的scope属性值:protot ... -
Struts2与spring结合时的高并发
2013-01-31 15:25 3615原来见过一个项目,用了struts2,可是由于action里边 ... -
DataAccessException
2012-07-10 10:35 877spring框架将所有的sql或者Hibernate异常转换成 ... -
SpringJDBC调用函数及存储
2012-06-21 09:57 1613springJDBC中当sql中用到char时,最好转为Str ... -
Spring中的byname,byType及其注解
2012-05-31 15:10 3364注解时@autowire(bytype) com.orien ... -
applicationContext.xml中的util
2012-04-11 10:54 967配置文件中配置: <util:list id=& ... -
Spring如何集成struts和hibernate
2011-06-22 10:47 9111 Spring集成StrutsStruts是 ... -
spring与struts结合
2011-02-18 10:58 1354为了在Struts中加载Spring context,需要在s ...
相关推荐
总结来说,这个"spring连接数据库实例"主要涵盖了Spring框架中`DataSource`的配置、`JdbcTemplate`的使用以及事务管理的实现。通过这些知识点,我们可以高效地在Spring应用中实现与数据库的交互,提高开发效率。在...
在初学SpringCloud的过程中,与Oracle数据库的连接是构建分布式系统的一个重要环节。SpringCloud作为一个微服务框架,提供了丰富的服务治理功能,而数据库作为数据存储的核心,与SpringBoot的集成使得我们可以轻松...
在多数据库切换查询中,`@Profile`注解可以帮助我们在不同环境(如开发、测试、生产)之间切换数据库配置。例如,你可以为每个环境创建一个配置类,并用`@Profile("dev")`、`@Profile("test")`和`@Profile("prod")`...
5. **配置数据源**:在Spring配置中添加DataSource bean,连接MySQL数据库。 6. **创建模型**:定义Java实体类,使用JPA注解(如`@Entity`、`@Table`等)描述数据库表结构。 7. **编写DAO**:使用JdbcTemplate或JPA...
在"spring连接数据库aop-jdbc"这个主题中,我们主要关注Spring框架如何通过AOP(面向切面编程)和JDBC(Java Database Connectivity)来实现数据库的高效管理。以下是关于这一主题的详细知识: 1. **Spring JDBC...
本篇将详细讲解如何配置Spring与MySQL数据库进行连接,以及如何利用SimpleJdbcTemplate进行数据操作。首先,我们需要理解Spring的JDBC支持,它提供了一种简单而强大的方式来处理数据库交互。 1. **Spring与MySQL的...
通过上述方法,我们可以确保Spring JDBC在连接数据库时使用的配置信息得到充分保护,从而提高应用的安全性。在开发过程中,结合源码理解和使用适当的工具,可以更有效地实现这一目标。对于更深入的学习,可以参考...
在Spring Boot应用中,动态连接多数据库是一种常见的需求,尤其在构建分布式系统或者需要支持多种数据源的场景下。Spring Boot以其简洁的配置和强大的自动配置能力,使得处理这种复杂性变得相对简单。本篇文章将深入...
在本文中,我们将深入探讨如何使用Spring Boot框架与MySQL数据库进行集成,主要通过Java Persistence API (JPA) 来实现数据的增删改查操作。首先,我们需要理解Spring Boot的核心特性,它简化了传统Spring应用的初始...
7. **XML配置中的bean定义**:尽管大部分配置可以通过注解完成,但在某些情况下,我们仍需在XML文件中声明bean,例如,当需要自定义初始化方法、配置特定的bean属性,或者处理非Java组件(如数据库连接池)时。...
这样,当需要更新数据库配置时,只需更改Config Server上的配置,服务端会自动感知变化并重新加载。 4. **Ribbon和Feign客户端**:在Spring Cloud中,Ribbon和Feign常用于服务间的负载均衡。如果各个服务连接不同的...
在整合中,我们需要在Hibernate的配置中指定这些文件的位置,以便连接和操作数据库。 总结来说,Struts2、Spring3.0和Hibernate3.3的全注解配置简化了代码,提高了可读性和可维护性。通过注解,我们可以快速地定义...
"连接池与Spring、Hibernate结合"这个主题涉及到的是如何有效地管理和复用数据库连接,以提高应用程序的效率和响应速度。这里我们将深入探讨连接池的概念,Spring框架中的数据源配置,以及Hibernate的集成,以及它们...
综上所述,"ssm框架应用连接数据库"涉及到的核心知识点包括:Spring的IoC和AOP,数据源配置,MyBatis的SqlSessionFactoryBean,Mapper接口和XML配置,以及Service层的业务逻辑处理。这些内容构成了Java Web应用开发...
MyBatis是一个持久层框架,它允许开发者将SQL语句与Java代码分离,通过XML或注解的方式配置和映射原生信息,将接口和Java的POJOs(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录。在SSM项目中,...
在这个"springMVC配置连接数据库实现登录功能的小demo"中,我们将探讨如何使用Spring MVC与Hibernate集成来处理用户登录功能。Hibernate是一个流行的ORM(对象关系映射)框架,它简化了与数据库的交互。 首先,我们...
在Spring中,我们可以配置多个DataSource bean,每个bean对应一个数据库连接。Spring的AbstractRoutingDataSource类可以用来实现动态数据源切换,它可以根据一定的规则(如事务上下文、请求参数等)选择使用哪个数据...
在非注解方式下,你需要配置Hibernate的`hibernate.cfg.xml`文件,设置数据库连接参数,并在实体类上使用JPA的`@Entity`注解。此外,还需要创建`SessionFactory`,它是Hibernate的主要工作单元,负责创建`Session`...
通过查看这些代码,我们可以学习如何在没有web.xml的情况下,使用注解来配置Spring MVC、数据库连接、事务管理等。 5. **工具使用**:创建和运行这样的项目,开发者通常会用到Maven或Gradle作为构建工具,它们负责...
Spring Boot高级教程之Spring Boot连接MySql数据库 Spring Boot是一款基于Java的开源框架,旨在简化Spring应用...使用Spring Boot的自动配置功能,我们可以轻松地连接MySql数据库,提高开发效率和数据存储的安全性。