功能描述:
发送短信工具类:该工具类定义了静态发短信的方法,所有使用的用户名,密码都需要定义为静态,这里需要通过spring 读取配置文件注入
首先定义静态变量:
private static String host="";
private static String username="";
private static String password="";
下面是静态的发送短信的方法:
/**
* @param host
* @param username
* @param password
* @param SMSBean
* @return
*/
public static String [] sendSMS(SMSBean smsBean)
{
String smsContext;
HttpMethodBase method = null;
try
{
smsContext = URLEncoder.encode(smsBean.getContent(),"utf-8");
String Url = "http://www.kasms.net/Api/smssend.aspx?user=" + username
+ "&pass=" + password + "&telno=1&msg=" + smsContext
+ "&mobiles=" + smsBean.getSendmobile();
System.out.println(Url);
HttpClient client = new HttpClient();
method = new PostMethod(Url);
method.setRequestHeader("Content-Type","text/html; charset=utf-8");
method.getParams().setParameter(HttpMethodParams.RETRY_HANDLER,
new DefaultHttpMethodRetryHandler(3,false));
int result = client.executeMethod(method);
if(result != HttpStatus.SC_OK)
{
System.err.println("Method failed: " + method.getStatusLine());
return new String []{"1","连接失败"};
}
}
catch(HttpException e)
{
System.out.println("服务器异常,请检查短信发送协议是否正确!");
e.printStackTrace();
return new String []{"1","连接失败"};
}
catch(IOException e)
{
System.out.println("IO异常,系统将自动重发3次。如一直失败!请检查网络是否正常!");
e.printStackTrace();
return new String []{"1","连接失败"};
}
finally
{
method.releaseConnection();
}
return new String []{"0","短信发送成功"};
}
后面是通过spring注入bean的get,set方法
错误就在这里:
/**
* @return the host
*/
public static String getHost()
{
return host;
}
/**
* @param host the host to set
*/
public static void setHost(String host)
{
SMSTools.host = host;
}
这里和平时的一看就不同,没有研究源码,应该是spring在读get,set方法时没有识别出来!
改成
/**
* @return the host
*/
public String getHost()
{
return host;
}
/**
* @param host the host to set
*/
public void setHost(String host)
{
SMSTools.host = host;
}
确行了...
分享到:
相关推荐
然而,Spring并不支持直接注入静态变量,这主要是由于静态变量的特性与依赖注入的设计原则相冲突。 首先,让我们了解一下为什么Spring依赖注入通常不适用于静态变量。静态变量属于类级别,而不是对象级别,这意味着...
在 Spring Boot 框架中,我们经常需要将配置文件中的值注入到静态变量中,但是默认情况下,Spring Boot 不支持将值注入到静态变量中。这是因为静态变量是属于类的,而不是实例的,而 Spring Boot 的注入机制是基于...
解决办法是使用spring的set注入方法来将非静态变量注入静态变量。下面是一个示例代码: ```java @PropertySource(value = {"classpath:config/application.yml"}, ignoreResourceNotFound = true, encoding="UTF-8...
静态方法:静态方法不能用于依赖注入,因为静态方法不能访问非静态成员变量。 4. 在 Spring 中,applicationContext.xml 文件可以配置 Bean 的作用域,例如,prototype 作用域表示每次请求 Bean 时都会创建新的...
该工厂Bean用于获取类的静态变量,并将其注入到其他Bean的属性中。例如,在`CarBrandType`接口中定义了两个常量`HONG_QI`和`JI_LI`,然后通过配置`FieldRetrievingFactoryBean`来获取这些常量,并将其注入到`Car`类...
* @Autowired 注解不能用于静态成员变量。 5. 结论 使用 Spring 注解可以简化属性的注入过程,提高代码的可读性和维护性。在使用 @Autowired 注解时,需要注意其使用限制和注意事项,以确保正确使用。
注入是指将对象的成员变量赋值的过程。Spring中有多种注入方式,如set注入、构造注入、数组注入、集合注入等。set注入是指通过类的set方法来赋值,构造注入是指通过类的有参构造方法来赋值。 五、控制反转和依赖...
6.8.1. 在Spring中使用AspectJ来为domain object进行依赖注入 6.8.1.1. @Configurable object的单元测试 6.8.1.2. 多application context情况下的处理 6.8.2. Spring中其他的AspectJ切面 6.8.3. 使用Spring IoC来...
在Java代码中,`ExampleService`类有一个`Dependency`类型的成员变量,通过setter方法注入依赖: ```java public class ExampleService { private Dependency dependency; @Autowired public void ...
这样,当发送邮件时,Spring会使用这些模板并替换变量,生成最终的邮件内容。 为了在Spring中集成Velocity,我们需要添加以下依赖: 1. `velocity-engine-core`:Velocity的核心库。 2. `velocity-tools-view`:...
6. **Property Injection**:`@Value` 注解可以用来注入静态值,包括字符串、数字、布尔值等,甚至可以从环境变量或系统属性中获取值。 7. **Aspect-Oriented Programming (AOP)**:虽然不是IoC的一部分,但Spring ...
使用JDOM解析`<property>`标签,将属性值注入到Bean中。这可能涉及到反射API,如`Class.forName()`和`Constructor.newInstance()`,以及`Field`类的`set()`方法。 5. **Java 1.6的新特性** Java 1.6引入了一些新...
Spring框架是Java开发中不可或缺的一部分,它以其模块化、松耦合和强大的依赖注入特性而闻名。Spring 3.0.2是该框架的一个稳定版本,提供了许多改进和新功能。在本文中,我们将深入探讨Spring 3.0.2 API文档中的核心...
`T()`用于引入静态类型,`#`字符后的`root`变量可以访问bean。例如,`#{root.name}`可以获取当前上下文中的bean的name属性。 在4.3.6.RELEASE版本中,SpEL增加了对Java 8新特性的支持,包括日期时间API(java.time...
1. **排除静态资源路径**: 在Spring MVC配置文件中,使用`<mvc:resources>`标签指定静态资源的映射路径。 2. **使用Restful风格的路由**: 通过`@RequestMapping`注解指定路径变量和HTTP方法。 综上所述,Spring MVC...
创建`src/main/webapp/WEB-INF/spring/appServlet/servlet-context.xml`,配置SpringMVC的细节,如视图解析器、静态资源路径等。 ```xml <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi=...
同时,它支持依赖注入,使得业务对象可以通过Spring容器获得依赖,从而简化了代码。 **Tiles** Tiles框架是Apache Struts项目的一部分,主要负责处理视图层的构建。Tiles允许开发者定义页面模板,这些模板可以被多...
- **实现方式**:Spring 支持从外部文件读取配置值,并通过 `@Value` 注解将这些值注入到 Bean 中。 ```java @Value("${property.name}") private String propertyName; ``` 通过以上介绍可以看出,在 Spring ...
在上面的代码中,我们使用 @Value 注解将 ftp.name 配置项的值注入到 ftpName 变量中。在这里,ftp.name 是 properties 文件中的一个键,${ftp.name} 是使用 EL 表达式来读取 properties 文件中的值。 注意事项 1....