1.spring的做用?
①.Spring能幫咱們根據配置文件建立及組裝對象之間的依賴關係。
②.Spring 面向切面編程能幫助咱們無耦合的實現日誌記錄,性能統計,安全控制。
③.Spring能很是簡單的幫咱們管理數據庫事務。
④.Spring還提供了與第三方數據訪問框架(如Hibernate、JPA)無縫集成,並且本身也提供了一套JDBC訪問模板,來方便數據庫訪問。
⑤.Spring還提供與第三方Web(如Struts、JSF)框架無縫集成,並且本身也提供了一套Spring MVC框架,來方便web層搭建。
⑥.Spring能方便的與Java EE(如Java Mail、任務調度)整合,與更多技術整合(好比緩存框架)。
2.spring的核心
IOC 控制反轉 建立對象的控制權反向的轉移給spring容器(BeanFactory)了 User u = new User();
DI 依賴注入 對象屬性值經過配置文件注入
AOP 面向切面編程
3.Spring是一個輕量級的非侵入式的DI/IoC和AOP容器的開源框架
4.簡單使用spring
1.導入所需的jar
lib包中找 : core context bean expression
第三方apache : commons-logging
2.建立spring配置文件
1)文件頭
2)
<beans>
<bean id="名字" class="類全限定名" name="給當前類多個名字"
scope="指定當前類做用域 request session singleton prototype">沒有屬性</bean>java
<!--控制反轉-->
<bean id="名字" class="類全限定名">
<!--DI依賴注入,自動裝配(name)-->
<!--屬性注入 setter方法結合無參構造-->
<property name="屬性名" ref=「和上面beanid值保持一致」 ></property> <!--屬性是對象類型-->
<property name="屬性名" value=「」 ></property> <!--屬性是基本數據類型-->
<property name="屬性名" ><!--屬性是集合類型-->
<list>
<value>****</value>
<value>****</value>
</list>
<map>
</map>
</property>
<!--有參注入 有參構造 可經過索引下標給指定的屬性賦值,還能夠經過type屬性賦值,還可經過name屬性賦值 -->
<constructor-arg index="" ref="" ></constructor-arg>
</bean>
</beans>
3)測試
BeanFactory factory = new ClassPathXmlApplicationContext(「spring。xml」);
XXXBean bean = (XXXBean)factory.getBean("beanId");
bean.方法名();mysql
5.spring 的aop
aop 面向切面編程
oop 面向對象編程 類 (最小的程序單元是類)web
6.使用註解的基本步驟spring
spring配置文件中
1) 啓用註解 <context:annotation-config></context:annotation-config>
2)設置註解掃描到包 <context:component-scan base-package="com.qyxy"></context:component-scan> sql
類上可使用的註解
@Controller 控制層
@Service 業務層
@Repository 持久層
@Entity 實體bean
@Component 無法具體歸類的時候使用數據庫
@Scope 單例(service,dao)/多例(controller)express
類的屬性上使用的註解
@Autowired 給對象屬性裝配值 默認狀況下經過type自動裝配值
@Qualifier(value="userDaoImpl") 經過id屬性裝配值apache
@Autowired 給基本屬性裝配值
@Value(value="10")編程
方法上可使用的註解
@PostConstruct 在初始化bean時執行特定方法
@PreDestroy 在銷燬bean以前執行特定的方法json
aop 註解
spring配置中 添加<aop:aspectj-autoproxy></aop:aspectj-autoproxy>
@Aspect 表明當前類是一個切面類
@Pointcut("execution(* com.qyxy.service.impl.*.*(..))")
public void pointcut() {}
@Before(value="pointcut()")
@After(value="pointcut()")
@Around(value="pointcut()")
spring的核心 IOC DI AOP
spring的註解
spring和其餘框架的結合使用
spring+jdbc的結合 完成增刪改查
spring+hibernate的結合
spring+hibernate+struts的結合
1.導入jar包
spring基礎包:
aopalliance.jar 切面相關
aspectjweaver-1.6.8.RELEASE.jar 切面相關
commons-logging-1.2.jar spring依賴的第三方工具包
spring-aop-5.0.2.RELEASE-sources.jar 切面相關
spring-aop-5.0.2.RELEASE.jar 切面相關
spring-aspects-5.0.2.RELEASE-sources.jar 切面相關
spring-aspects-5.0.2.RELEASE.jar 切面相關
spring-beans-5.0.2.RELEASE-sources.jar 核心不可缺乏
spring-beans-5.0.2.RELEASE.jar 核心不可缺乏
spring-context-5.0.2.RELEASE-sources.jar 核心不可缺乏
spring-context-5.0.2.RELEASE.jar 核心不可缺乏
spring-core-5.0.2.RELEASE-sources.jar 核心不可缺乏
spring-core-5.0.2.RELEASE.jar 核心不可缺乏
spring-expression-5.0.2.RELEASE-sources.jar 核心不可缺乏
spring-expression-5.0.2.RELEASE.jar 核心不可缺乏
jdbc鏈接數據庫及dbcp鏈接池的jar包:
commons-dbcp2-2.1.1.jar dbcp鏈接池
commons-pool2-2.4.2.jar dbcp鏈接池
mysql-connector-java-5.1.26-bin.jar mysql數據庫查詢
spring和jdbc結合使用的jar包:
spring-jdbc-5.0.2.RELEASE-sources.jar spring-jdbc結合使用
spring-jdbc-5.0.2.RELEASE.jar spring-jdbc結合使用
spring-tx-5.0.2.RELEASE-sources.jar spring-jdbc 事務管理
spring-tx-5.0.2.RELEASE.jar spring-jdbc 事務管理
hibernate最小需求jar包
antlr-2.7.7.jar 核心不可少
classmate-1.3.0.jar 核心不可少
dom4j-1.6.1.jar 核心不可少
geronimo-jta_1.1_spec-1.1.1.jar 核心不可少
hibernate-commons-annotations-5.0.1.Final.jar 核心不可少
hibernate-core-5.1.3.Final.jar 核心不可少
hibernate-jpa-2.1-api-1.0.0.Final.jar 核心不可少
jandex-2.0.3.Final.jar 核心不可少
javassist-3.20.0-GA.jar 核心不可少
jboss-logging-3.3.0.Final.jar 核心不可少
spring和hibernate結合的jar包
spring-orm-5.0.2.RELEASE-sources.jar spring-orm框架結合
spring-orm-5.0.2.RELEASE.jar spring-orm框架結合
struts使用的jar包
commons-fileupload-1.3.2.jar struts不可少
commons-io-2.4.jar struts不可少
commons-lang3-3.4.jar struts不可少
freemarker-2.3.23.jar struts不可少
javassist-3.20.0-GA.jar struts不可少
log4j-api-2.7.jar 日誌管理
ognl-3.1.12.jar struts不可少
struts2-core-2.5.10.1.jar struts不可少
struts2-json-plugin-2.5.10.1.jar struts-json結合使用
struts和spring結合的jar包
struts2-spring-plugin-2.5.10.1.jar struts-spring結合使用
spring-web-5.0.2.RELEASE-sources.jar struts web應用
spring-web-5.0.2.RELEASE.jar struts web應用
jstl標籤函數庫須要的jar包
jstl.jar 頁面使用jstl必須
standard.jar jstl依賴的jar
在使用aop切面切入action層時,默認會攔截action層數據。解決方案:struts.xml配置文件中添加如下配置,讓struts始終考慮spring自動裝載<constant name="struts.objectFactory.spring.autoWire.alwaysRespect" value="true"></constant> spring.xml中添加一下內容,<!-- 定義切面使用自動代理模式 --><aop:aspectj-autoproxy proxy-target-class="true"></aop:aspectj-autoproxy>