依赖注入的第二种注入方式:构造器注入

创建带参数的构造方法,参数类型为注入类的类型

项目要先添加spring支持;

  1. package com;
  2. public class Computer {
  3. private Host host;
  4. private Display display;
  5. //public Computer(){}
  6. public Computer(Host host, Display display) {
  7. this.host = host;
  8. this.display = display;
  9. }
  10. public void run() {
  11. System.out.println(host.run() + "; " + display.run());
  12. }
  13. /*public void setHost(Host host) {
  14. this.host = host;
  15. }
  16. public void setDisplay(Display display) {
  17. this.display = display;
  18. }*/
  19. }
package com;

public class Computer {
	private Host host;
	private Display display;

	//public Computer(){}
	public Computer(Host host, Display display) {
		this.host = host;
		this.display = display;
	}

	public void run() {
		System.out.println(host.run() + "; " + display.run());
	}
	/*public void setHost(Host host) {
		this.host = host;
	}
	public void setDisplay(Display display) {
		this.display = display;
	}*/

}
  1. package com;
  2. public class Display {
  3. public String run(){
  4. return "我是显示器,我在运行";
  5. }
  6. }
package com;

public class Display {
	public String run(){
		return "我是显示器,我在运行";
	}
}
  1. package com;
  2. public class Host {
  3. public String run() {
  4. return "我是主机,我在运行";
  5. }
  6. }
package com;

public class Host {
	public String run() {
		return "我是主机,我在运行";
	}

}
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans
  3. xmlns="http://www.springframework.org/schema/beans"
  4. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  5. xmlns:p="http://www.springframework.org/schema/p"
  6. xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
  7. <bean id="host" class="com.Host"></bean>
  8. <bean id="display" class="com.Display"></bean>
  9. <bean id="computer" class="com.Computer">
  10. <!--要有默认构造方法,和属性的set方法-->
  11. <!-- <property name="host" ref="host"></property>
  12. <property name="display" ref="display"></property> -->
  13. <constructor-arg name="host" ref="host"/>
  14. <!-- 用另外一种,两种配置 -->
  15. <constructor-arg index="1">
  16. <ref bean="display"/>
  17. </constructor-arg>
  18. </bean>
  19. </beans>
<?xml version="1.0" encoding="UTF-8"?>
<beans
	xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:p="http://www.springframework.org/schema/p"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">

	<bean id="host" class="com.Host"></bean>
	<bean id="display" class="com.Display"></bean>

	<bean id="computer" class="com.Computer">
		<!--要有默认构造方法,和属性的set方法-->
		<!-- <property name="host" ref="host"></property>
		<property name="display" ref="display"></property> -->

		<constructor-arg name="host" ref="host"/>
		<!-- 用另外一种,两种配置 -->
		<constructor-arg index="1">
			<ref bean="display"/>
		</constructor-arg>

	</bean>
</beans>

TestComputer

  1. package com;
  2. import org.junit.Test;
  3. import org.springframework.context.ApplicationContext;
  4. import org.springframework.context.support.ClassPathXmlApplicationContext;
  5. public class TestComputer {
  6. @Test
  7. public void testRun(){
  8. ApplicationContext ac =new ClassPathXmlApplicationContext("applicationContext.xml");
  9. Computer computer = (Computer) ac.getBean("computer");
  10. computer.run();
  11. }
  12. }
package com;

import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class TestComputer {
	@Test
	public void testRun(){
		ApplicationContext ac =new ClassPathXmlApplicationContext("applicationContext.xml");
		Computer computer = (Computer) ac.getBean("computer");
		computer.run();
	}
}

自动装配:Spring可以自动根据属性类型、名称等进行注入 autowire属性可以设置为no、byType或byName   byName 一个都没找到,不报错;采用byName方式,将根据属性名称在Spring Bean Factory中找,找到即自动注入,否则,什么都不做 byType 找到一个以上报错; Spring提供了依赖检查功能 default-dependency-check属性 spring3.0以后没有了;

  1. package com;
  2. public class Computer {
  3. private Host host;
  4. private Display display;
  5. public Computer(){}
  6. public Computer(Host host, Display display) {
  7. this.host = host;
  8. this.display = display;
  9. }
  10. public void run() {
  11. System.out.println(host.run() + "; " + display.run());
  12. }
  13. public void setHost(Host host) {
  14. this.host = host;
  15. }
  16. public void setDisplay(Display display) {
  17. this.display = display;
  18. }
  19. }
package com;

public class Computer {
	private Host host;
	private Display display;

	public Computer(){}
	public Computer(Host host, Display display) {
		this.host = host;
		this.display = display;
	}

	public void run() {
		System.out.println(host.run() + "; " + display.run());
	}
	public void setHost(Host host) {
		this.host = host;
	}
	public void setDisplay(Display display) {
		this.display = display;
	}

}
  1. package com;
  2. public class Display {
  3. public String run(){
  4. return "我是显示器,我在运行";
  5. }
  6. }
package com;

public class Display {
	public String run(){
		return "我是显示器,我在运行";
	}
}
  1. package com;
  2. public class Host {
  3. public String run() {
  4. return "我是主机,我在运行";
  5. }
  6. }
package com;

public class Host {
	public String run() {
		return "我是主机,我在运行";
	}

}
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans
  3. xmlns="http://www.springframework.org/schema/beans"
  4. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  5. xmlns:p="http://www.springframework.org/schema/p"
  6. xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"
  7. default-autowire="byName"
  8. >
  9. <!-- 第一种 :上面的 default-autowire="byName" 全局的,在beans上配置 -->
  10. <!-- 第二种:autowire="byName" 方式 -->
  11. <bean id="host" class="com.Host"></bean><!--autowire="byName"名字必须是host -->
  12. <bean id="display" class="com.Display"></bean>
  13. <bean id="computer" class="com.Computer" autowire="byName">
  14. <!-- 第二种:autowire="byType" 方式
  15. <bean id="host1" class="com.Host"></bean>
  16. <bean id="display1" class="com.Display"></bean>
  17. <bean id="computer" class="com.Computer" autowire="byType">
  18. -->
  19. <!--使用自动装配 这个不用
  20. <property name="host" ref="host"></property> -->
  21. </bean>
  22. </beans>
<?xml version="1.0" encoding="UTF-8"?>
<beans
	xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:p="http://www.springframework.org/schema/p"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"
	default-autowire="byName"
	>
	<!-- 第一种 :上面的 default-autowire="byName" 全局的,在beans上配置 -->

	<!-- 第二种:autowire="byName" 方式 -->
	<bean id="host" class="com.Host"></bean><!--autowire="byName"名字必须是host -->
	<bean id="display" class="com.Display"></bean>

	<bean id="computer" class="com.Computer" autowire="byName"> 

	<!-- 第二种:autowire="byType" 方式
	<bean id="host1" class="com.Host"></bean>
	<bean id="display1" class="com.Display"></bean>

	<bean id="computer" class="com.Computer" autowire="byType">
	-->

	<!--使用自动装配 这个不用
	 <property name="host" ref="host"></property> -->

	</bean>
</beans>
  1. package com;
  2. import org.junit.Test;
  3. import org.springframework.context.ApplicationContext;
  4. import org.springframework.context.support.ClassPathXmlApplicationContext;
  5. public class TestComputer {
  6. @Test
  7. public void testRun(){
  8. ApplicationContext ac =new ClassPathXmlApplicationContext("applicationContext.xml");
  9. Computer computer = (Computer) ac.getBean("computer");
  10. computer.run();
  11. }
  12. }
package com;

import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class TestComputer {
	@Test
	public void testRun(){
		ApplicationContext ac =new ClassPathXmlApplicationContext("applicationContext.xml");
		Computer computer = (Computer) ac.getBean("computer");
		computer.run();
	}
}

拆分配置文件: 新建Dao Service Action的配置文件,修改web.xml使用通配符*; 测试类测试 EmployeeServiceTest  
拆分配置文件两种方法 1.配制Spring集成时:配制ContextLoadListener的contextConfigLocation属性,配置多个配置文件用,逗号隔开;或者使用通配符 2.在公用配置文件使用<import resource="x.xml"/>方式

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xmlns:p="http://www.springframework.org/schema/p"
  5. xmlns:tx="http://www.springframework.org/schema/tx"
  6. xmlns:aop="http://www.springframework.org/schema/aop"
  7. xmlns:context="http://www.springframework.org/schema/context"
  8. xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
  9. http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
  10. http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
  11. http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
  12. ">
  13. <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
  14. <property name="configLocation" value="classpath:hibernate.cfg.xml"></property>
  15. </bean>
  16. <!-- 配置事务管理器 -->
  17. <bean id="txManage" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
  18. <property name="sessionFactory" ref="sessionFactory"></property>
  19. </bean>
  20. <!-- 要被事务管理(支持)的方法 -->
  21. <tx:advice id="txAdvice" transaction-manager="txManage">
  22. <tx:attributes >
  23. <!-- 默认false;propagation="REQUIRED":hibernate4的时候必须要使用 REQUIRED-->
  24. <tx:method name="get*" read-only="true" propagation="REQUIRED"/>
  25. <tx:method name="search*" read-only="true" propagation="REQUIRED"/>
  26. <tx:method name="find*" read-only="true" propagation="REQUIRED"/>
  27. <tx:method name="query*" read-only="true" propagation="REQUIRED"/>
  28. <tx:method name="*" rollback-for="DataAccessException" propagation="REQUIRED"/> <!-- 读写 -->
  29. </tx:attributes>
  30. </tx:advice>
  31. <!-- 切到类里面去(事务要加到哪里,一般在业务里面) -->
  32. <aop:config>
  33. <!--execution:切面要在哪里切,(* com.jboa.*.*(..)):com.jboa.service下所以的类,所以的方法,所以的返回值,都受到切面的影响 -->
  34. <aop:pointcut expression="execution(* com.jboa.service.*.*(..))" id="serviceMethods"/>
  35. <!-- 注释掉,就没事务了 -->
  36. <aop:advisor pointcut-ref="serviceMethods" advice-ref="txAdvice"/>
  37. </aop:config>
  38. <!-- 拆分配置文件:到新建 DaoApplicationContext.xml-->
  39. <!-- <bean id="accountDao" class="com.jboa.dao.impl.AccountDaoImpl" depends-on="sessionFactory">
  40. <property name="sessionFactory" ref="sessionFactory"></property>
  41. </bean>
  42. <bean id="employeeDao" class="com.jboa.dao.impl.EmployeeDaoImpl" depends-on="sessionFactory">
  43. <property name="sessionFactory" ref="sessionFactory"></property>
  44. </bean>
  45. <bean id="dictionaryDao" class="com.jboa.dao.impl.DictionaryDaoImpl" depends-on="sessionFactory">
  46. <property name="sessionFactory" ref="sessionFactory"></property>
  47. </bean> -->
  48. <!-- 拆分配置文件:到新建 ServiceApplicationContext.xml-->
  49. <!-- <bean id="employeeService" class="com.jboa.service.impl.EmployeeServiceImpl">
  50. <property name="employeeDao" ref="employeeDao"></property>
  51. </bean>
  52. <bean id="dictionaryService" class="com.jboa.service.impl.DictionaryServiceImpl">
  53. <property name="dictionaryDao" ref="dictionaryDao"></property>
  54. </bean> -->
  55. <!-- 拆分配置文件:到新建 ActionApplicationContext.xml-->
  56. <!-- <bean id="employeeAction" class="com.jboa.action.EmployeeAction" scope="prototype">
  57. <property name="employeeService" ref="employeeService"></property>
  58. <property name="dictionaryService" ref="dictionaryService"></property>
  59. </bean> -->
  60. <!-- 第二种方式 -->
  61. <!-- <import resource="DaoApplicationContext.xml"/>
  62. <import resource="ServiceApplicationContext.xml"/>
  63. <import resource="ActionApplicationContext.xml"/> -->
  64. </beans>
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:p="http://www.springframework.org/schema/p"
	xmlns:tx="http://www.springframework.org/schema/tx"
	xmlns:aop="http://www.springframework.org/schema/aop"
	xmlns:context="http://www.springframework.org/schema/context"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
	 http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
	 http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
	 http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
	  ">

	<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
		<property name="configLocation" value="classpath:hibernate.cfg.xml"></property>
	</bean>

	<!-- 配置事务管理器 -->
	<bean id="txManage" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
		<property name="sessionFactory" ref="sessionFactory"></property>
	</bean>
	<!-- 要被事务管理(支持)的方法 -->
	<tx:advice id="txAdvice" transaction-manager="txManage">
		<tx:attributes >
			<!-- 默认false;propagation="REQUIRED":hibernate4的时候必须要使用 REQUIRED-->
			<tx:method name="get*" read-only="true" propagation="REQUIRED"/>
			<tx:method name="search*" read-only="true" propagation="REQUIRED"/>
			<tx:method name="find*" read-only="true" propagation="REQUIRED"/>
			<tx:method name="query*" read-only="true" propagation="REQUIRED"/>
			<tx:method name="*" rollback-for="DataAccessException" propagation="REQUIRED"/> <!-- 读写 -->
		</tx:attributes>
	</tx:advice>
	<!-- 切到类里面去(事务要加到哪里,一般在业务里面) -->
	<aop:config>
		<!--execution:切面要在哪里切,(* com.jboa.*.*(..)):com.jboa.service下所以的类,所以的方法,所以的返回值,都受到切面的影响 -->
		<aop:pointcut expression="execution(* com.jboa.service.*.*(..))" id="serviceMethods"/>
		<!-- 注释掉,就没事务了 -->
        <aop:advisor pointcut-ref="serviceMethods" advice-ref="txAdvice"/>
	</aop:config>
	<!-- 拆分配置文件:到新建 DaoApplicationContext.xml-->
	<!-- <bean id="accountDao" class="com.jboa.dao.impl.AccountDaoImpl" depends-on="sessionFactory">
		<property name="sessionFactory" ref="sessionFactory"></property>
	</bean>
	<bean id="employeeDao" class="com.jboa.dao.impl.EmployeeDaoImpl" depends-on="sessionFactory">
		<property name="sessionFactory" ref="sessionFactory"></property>
	</bean>
	<bean id="dictionaryDao" class="com.jboa.dao.impl.DictionaryDaoImpl" depends-on="sessionFactory">
		<property name="sessionFactory" ref="sessionFactory"></property>
	</bean> -->
	<!-- 拆分配置文件:到新建 ServiceApplicationContext.xml-->
	<!-- <bean id="employeeService" class="com.jboa.service.impl.EmployeeServiceImpl">
		<property name="employeeDao" ref="employeeDao"></property>
	</bean>
	<bean id="dictionaryService" class="com.jboa.service.impl.DictionaryServiceImpl">
		<property name="dictionaryDao" ref="dictionaryDao"></property>
	</bean> -->
	<!-- 拆分配置文件:到新建 ActionApplicationContext.xml-->
	<!-- <bean id="employeeAction" class="com.jboa.action.EmployeeAction" scope="prototype">
		<property name="employeeService" ref="employeeService"></property>
		<property name="dictionaryService" ref="dictionaryService"></property>
	</bean> -->
	<!-- 第二种方式 -->
	<!-- <import resource="DaoApplicationContext.xml"/>
	<import resource="ServiceApplicationContext.xml"/>
	<import resource="ActionApplicationContext.xml"/> -->
</beans>

web.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
  3. http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
  4. <display-name></display-name>
  5. <welcome-file-list>
  6. <welcome-file>login.jsp</welcome-file>
  7. </welcome-file-list>
  8. <!-- 整合Spring -->
  9. <context-param>
  10. <param-name>contextConfigLocation</param-name>
  11. <!-- 第一种拆分方式 -->
  12. <param-value>classpath:*ApplicationContext.xml</param-value>
  13. <!-- 第二种拆分方式 -->
  14. <!-- <param-value>classpath:DefaultApplicationContext.xml</param-value> -->
  15. </context-param>
  16. <listener>
  17. <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  18. </listener>
  19. <!-- 配置strut2的过滤器 -->
  20. <filter>
  21. <filter-name>struts2</filter-name>
  22. <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
  23. </filter>
  24. <filter-mapping>
  25. <filter-name>struts2</filter-name>
  26. <url-pattern>/*</url-pattern>
  27. </filter-mapping>
  28. </web-app>
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
	http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
	<display-name></display-name>
	<welcome-file-list>
		<welcome-file>login.jsp</welcome-file>
	</welcome-file-list>
	<!-- 整合Spring -->
	<context-param>
		<param-name>contextConfigLocation</param-name>
		<!-- 第一种拆分方式 -->
		<param-value>classpath:*ApplicationContext.xml</param-value>
		<!-- 第二种拆分方式 -->
		<!-- <param-value>classpath:DefaultApplicationContext.xml</param-value> -->
	</context-param>

	<listener>
		<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
	</listener>
	<!-- 配置strut2的过滤器 -->
	<filter>
		<filter-name>struts2</filter-name>
		<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
	</filter>
	<filter-mapping>
		<filter-name>struts2</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>
</web-app>

然后执行测试类测试:

  1. package com.jboa.service;
  2. import org.junit.Test;
  3. import org.springframework.context.ApplicationContext;
  4. import org.springframework.context.support.ClassPathXmlApplicationContext;
  5. import com.jboa.model.Department;
  6. import com.jboa.model.Employee;
  7. import com.jboa.model.Postion;
  8. public class EmployeeServiceTest {
  9. @Test
  10. public void testAdd() {
  11. ApplicationContext ac = new ClassPathXmlApplicationContext("/*ApplicationContext.xml");
  12. EmployeeService employeeService = (EmployeeService) ac.getBean("employeeService");
  13. Employee employee = new Employee();
  14. employee.setSn("user111111");
  15. employee.setPassword("user111111");
  16. employee.setStatus("1");
  17. employee.setName("user111111");
  18. Postion p = new Postion();
  19. p.setId(2);
  20. employee.setPostion(p);
  21. Department d = new Department();
  22. d.setId(1);
  23. employee.setDepartment(d);
  24. employeeService.add(employee);
  25. }
  26. }

Spring_构造注入的更多相关文章

  1. Spring 设值注入 构造注入 p命名空间注入

    注入Bean属性---构造注入配置方案 在Spring配置文件中通过<constructor-arg>元素为构造方法传参 注意: 1.一个<constructor-arg>元素 ...

  2. Ioc和Aop扩展--多种方式实现依赖注入(构造注入,p命名空间注入,集合类型注入,注入null和注入空值)

    构造注入 语法: <constructor-arg>    <ref bean="bean的id"/> </constructor-arg> 1 ...

  3. Spring(3.2.3) - Beans(2): 属性注入 & 构造注入

    依赖注入是指程序运行过程中们如果需要另外的对象协作(访问它的属性或调用它的方法)时,无须在代码中创建被调用者,而是依赖于外部容器的注入. 属性注入(Setter Injection) 属性注入是指 I ...

  4. spring 构造注入 异常 Ambiguous constructor argument types - did you specify the correct bean references as constructor arguments

    你可能在做项目的时候,需要在项目启动时初始化一个自定义的类,这个类中包含着一个有参的构造方法,这个构造方法中需要传入一些参数. spring提供的这个功能叫“构造注入”, applicationCon ...

  5. Spring注入值得2种方式:属性注入和构造注入

    Spring是一个依赖注入(控制反转)的框架,那么依赖注入(标控制反转)表现在那些地方了? 即:一个类中的属性(其他对象)不再需要手动new或者通过工厂方法进行创建,而是Spring容器在属性被使用的 ...

  6. Spring接口编程_设值注入和构造注入

    说明: UserManagerImp是设值注入,UserManagerImp2是构造注入 接口不注入,也就是在Spring配置文件中没有接口的<bean>,但是定义的时候是用接口 priv ...

  7. Spring学习(3)---Spring设值注入和构造注入

    (一)设值注入就是指要被注入的类中定义有一个setter()方法,并在参数中定义需要注入的对象.简单的看个例子. 建一个User类: package com.ioc; public class Use ...

  8. 7.28.1 Spring构造注入还是设置注入

    1. 构造方法注入代码如下:public UserManagerImpl(UserDao userDao) {                                              ...

  9. SSM-Spring-04:Spring的DI的构造注入,P命名注入,和集合注入

    ------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- DI和IOC相比,DI更偏向于实现 DI的set方式注入在前面入门案例里有写,所以此处不多啰嗦,直接开搞,先说 ...

随机推荐

  1. 笔记整理——Linux下C语言正则表达式

    Linux下C语言正则表达式使用详解 - Google Chrome (2013/5/2 16:40:37) Linux下C语言正则表达式使用详解 2012年6月6日Neal627 views发表评论 ...

  2. 创建 Web 前端开发环境(node和npm)

    Web 前端开发涉及多种工具,这里将常用工具的安装和配置进行说明,提供了详细的说明,为后继的开发创建一个坚实的基础. 本文介绍的工具有:NodeJS, NPM, Bower, Git 和 Grunt. ...

  3. JAVA短信验证登录

    短信验证登陆 1.点击触发,以电话号码为参数调用发送验证登录短信方法 2.默认模板为验证模板 生成6位验证码 3.将生成的验证码和手机号码放入缓存,(已经设置好缓存存放时间) 4.调用发送模板短信方法 ...

  4. Python. Day1. 之初识 变量数据类型

    稍后添加 一  介绍 二  变量

  5. centos 单独安装nginx

    安装包下载网址: http://nginx.org/en/download.html 进入Linux文件夹执行 wget http://nginx.org/download/nginx-1.8.0.t ...

  6. 冒泡排序法-java案例详解

    /** * 功能:冒泡排序法 * 思想:通过对待排序序列从后向前(从下标较大的元素开始),依次比较相邻元素的排序码, * ,若发现逆序这交换,使得排序码较小的元素逐渐从后部移向前部(从下标较大的单元移 ...

  7. CSS中设置margin:0 auto; 水平居中无效的原因分析

    很多初学制作网页的朋友,可能会遇到的一个常见问题,就是在CSS中加了margin:0 auto;却没有效果,不能居中的问题,margin:0 auto;的意思就是:上下边界为0,左右根据宽度自适应,其 ...

  8. Spring util-namespace下标签相关操作

    java代码 package com.stono.sprtest; import java.util.List; import java.util.Map; import java.util.Set; ...

  9. loadrunner:从数据库中取值进行参数化

    下面我们介绍用数据库中的用户名来参数化登陆用户名. 框选住登陆名,点鼠标右键,弹出对话框,选择"替换为新参数"弹出对话框,此时参数名输入:name,参数类型选择File,如图 点& ...

  10. js、css3实现图片的放大效果

    今天看网易的网站上,当我把鼠标放上去的时候发现图片放大,移开图片缩小,于是自行尝试,结果如下. 方法一:使用js和css3 效果如图: 这样的实现非常简单,就是利用js的mouseover和 mous ...