springboot项⽬开发说明
⼀、前⾔
次说明参照新的项⽬体系结构编写,具体哪些是新的项⽬体系,请参照:
随着我们对技术的不断深⼊,项⽬结构配置也会趋于更加透明简洁,所以项⽬体系会不断的更新,如有问题请咨询架构组
截⾄⽬前,本⽂采⽤的Nove版本为1.2.9.RELEASE
注意:API包除了依赖ecej-model 尽量不要依赖其他任何⾃定义包,否则以后发布公共接⼝可能导致各种奇葩问题
⼆、应⽤技术说明
新的项⽬体系主要采⽤spring boot 、mybatis 、druid 、dubbo
三、项⽬结构说明
springboot架构图下⾯说下基本项⽬结构,先看下新结构包含什么,以⽤户中⼼为例
新的项⽬结构摒弃了⽼结构中的dao 、po 等jar依赖
dao的东西经过配置化管理,只剩下了UcBaseDao 和 DBConfiguration(包括了数据源等配置,⼤家可以依葫芦画瓢⾃⼰试试)po的东西以后放到⾃⼰的api中,记住api包不允许依赖任何jar包,以免出现恶⼼⾃⼰的问题
⽗POM中删除了⽆⽤的依赖,继承了底层平台POM
下⾯说下核⼼的数据源配置DBConfiguration
这个继承了AbstractDruidDBConfig 其实内部就是帮助⼤家加载了下数据源,⽅便配置⽽已
这是我们需要配置的属性,配置在remote-db.properties中
这就是我们的数据源声明
事物的声明,其实⼤家会发现只是换了个形式写⽽已,省去了xml配置
四、Redis的使⽤
说下redis使⽤,如果想在⾃⼰的项⽬中使⽤redis,如下先加⼊依赖
<dependency>
<groupId&ve</groupId>
<artifactId>ecej-redis</artifactId>
</dependency>
就可以了,然后我们只要配置我们的配置⽂件,不需要其他多余的⼯作
redis集分为两种,sentinel 还有3.x的cluster,根据你⾃⼰的需要选择集配置,配置⽂件都放在resources下⾯的,没有特殊要求的话请都使⽤3.x配置
1、先说sentinel配置
⽤法:使⽤ve.redis.utils.JedisClusterUtils这个静态类
这个⼤家可以直接下载⽤
以下配置可选择增加
这是properties的配置
下⾯说下POM⾥⾯profile的配置
&dis.hostName>10.32.32.58:26379,10.32.32.58:26380,10.32.32.58:26381</dis.hostName>
&dis.mastername>redismaster</dis.mastername>
&dis.password><![CDATA[4BZcIv&9]]></dis.password>
&dis.maxIdle>10</dis.maxIdle>
&dis.maxTotal>1000</dis.maxTotal>
&dis.maxWaitMillis>3000</dis.maxWaitMillis>
2、下⾯再说下3.x的配置
以下配置可选择增加
下⾯贴出profile的配置
&dis.hostName>10.4.89.161:6379</dis.hostName>
&dis.maxRedirects>10</dis.maxRedirects>
&dis.password></dis.password>
&dis.maxIdle>10</dis.maxIdle>
&dis.maxTotal>1000</dis.maxTotal>
&dis.maxWaitMillis>3000</dis.maxWaitMillis>
两种配置都有了,那下⾯说下怎么选择⽤哪种集模式
注意:这俩配置选⼀个,放在application.properties中,不要乱放。
最后⼀步,配置⽂件读取
在PropertiesConfig 中
3.Key 的命名规范
应⽤名称
key 定义说明公共
COMM_XXX 运营
ADMIN_XXX ⽤户
CUST_XXX 员⼯
EMP_XXX
五、RabbitMQ 使⽤
RabbitMQ
⾸先加⼊依赖
<dependency>
<groupId&ve</groupId>
<artifactId>ecej-rabbitmq</artifactId>
</dependency>
编写配置⽂件到application.properties
spring.rabbitmq.addresses=@ecej.rabbitmq.addresses@
注意:有密码就加下⾯的配置,没有千万不要加(正常都应该有密码,没密码运维)
spring.rabbitmq.username=@ecej.rabbitmq.username@
spring.rabbitmq.password=@ecej.rabbitmq.password@
下⾯贴出
profile
<!-- Rabbit MQ -->
<ecej.rabbitmq.addresses>10.32.32.35:5672,10.32.32.37:5672,10.32.32.40:5672</ecej.rabbitmq.addresses>
<ecej.rabbitmq.username>ecej</ecej.rabbitmq.username>
<ecej.rabbitmq.password>ecej</ecej.rabbitmq.password>
配置队列
package fig;
import org.Queue;
import t.annotation.Bean;
import t.annotation.Configuration;
@Configuration
public class RabbitMQConfig {
@Bean
public Queue mailQueue() {
return new Queue( "ecejmail" );
}
@Bean
public Queue smsQueue() {
return new Queue( "ecejsms" );
}
@Bean
public Queue jpushQueue() {
return new Queue( "ecejjpush" );
}
}
发送消息
package ve.test.sms;
import java.util.Date;
import javax.annotation.Resource;
import org.junit.Test;
import org.springframework.RabbitTemplate; import org.springframework.stereotype.Component;
import ve.base.mail.BaseMail;
@Component
public class SendMailTest {
@Resource
private RabbitTemplate rabbitTemplate;
@Test
public void sendMQ() {
BaseMail baseMail = new BaseMail();
baseMail.setTo( new String[] { "598505651@qq" }); baseMail.setSubject( "这是⼀个神奇的⽹站" );
baseMail.setText( "这是⼀个⼀格" );
baseMail.setCc( new String[] { "35329425@qq" }); vertAndSend( "ecejmail" , baseMail); System.out.println( "Sender : " + Text());
String context = "Text() " + new Date();
}
}
接收消息
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论